summaryrefslogtreecommitdiffstats
path: root/src/server/Api/Internal/Account/GetProfileDataRoute.cs
blob: c68f295b789279d9a088f534efefaf889015c647 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
namespace IOL.BookmarkThing.Server.Api.Internal.Account;

public class GetProfileDataRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult<LoggedInInternalUser>
{
	private readonly AppDbContext _context;
	private readonly ILogger<GetProfileDataRoute> _logger;

	public GetProfileDataRoute(ILogger<GetProfileDataRoute> logger, AppDbContext context) {
		_logger = logger;
		_context = context;
	}

	[ApiVersionNeutral]
	[ApiExplorerSettings(IgnoreApi = true)]
	[HttpGet("~/v{version:apiVersion}/account/profile-data")]
	public override ActionResult<LoggedInInternalUser> Handle() {
		// if (!Guid.TryParse(User.FindFirstValue(ClaimTypes.NameIdentifier), out var _)) {
		// 	var github_id = User.FindFirstValue(AppClaims.GITHUB_ID);
		// 	if (github_id.HasValue()) {
		// 		var existing_mapping = _context.GithubUserMappings.Include(c => c.User).SingleOrDefault(c => c.GithubId == github_id);
		// 		var id = new ClaimsIdentity();
		// 		if (existing_mapping != default) {
		// 			id.AddClaims(existing_mapping.User.DefaultClaims());
		// 			User.AddIdentity(id);
		// 		} else {
		// 			var name = User.FindFirstValue(ClaimTypes.Name);
		// 			var user = new User(name) {
		// 					Id = Guid.NewGuid()
		// 			};
		// 			var mapping = new GithubUserMapping {
		// 					GithubId = github_id,
		// 					User = user
		// 			};
		// 			_context.GithubUserMappings.Add(mapping);
		// 			_context.SaveChanges();
		// 			id.AddClaims(mapping.User.DefaultClaims());
		// 			User.AddIdentity(id);
		// 		}
		//
		// 		_logger.LogInformation("Added user mapping for github user");
		// 	}
		// }

		return Ok(LoggedInUser);
	}
}