namespace IOL.BookmarkThing.Server.Api.Internal.Account; public class GetProfileDataRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult { private readonly AppDbContext _context; private readonly ILogger _logger; public GetProfileDataRoute(ILogger logger, AppDbContext context) { _logger = logger; _context = context; } [ApiVersionNeutral] [ApiExplorerSettings(IgnoreApi = true)] [HttpGet("~/v{version:apiVersion}/account/profile-data")] public override ActionResult 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); } }