namespace IOL.BookmarkThing.Server.Api.Internal.Account; public class CreateTokenRoute : RouteBaseInternalSync.WithRequest.WithActionResult { private readonly AppDbContext _context; public CreateTokenRoute(AppDbContext context) { _context = context; } [ApiVersionNeutral] [ApiExplorerSettings(IgnoreApi = true)] [HttpPost("~/v{version:apiVersion}/account/create-token")] public override ActionResult Handle(CreateTokenRequest request) { var user = _context.Users.SingleOrDefault(c => c.Id == LoggedInUser.Id); if (user == default) { return NotFound(new ErrorResult("User does not exist")); } if (request.Name.IsNullOrWhiteSpace()) { return BadRequest(new ErrorResult("Token name is required")); } var token = new AccessToken { Id = Guid.NewGuid(), Name = request.Name, User = user }; _context.AccessTokens.Add(token); _context.SaveChanges(); return Ok(token); } }