From 0725e4f7cf4c6f723264b6d461b91c660d144cb7 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sun, 30 Oct 2022 22:40:03 +0700 Subject: feat: Apiwork --- .../src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs | 30 +++++-------- .../src/Endpoints/V1/ApiTokens/DeleteTokenRoute.cs | 52 +++++++++++----------- .../src/Endpoints/V1/ApiTokens/GetTokensRoute.cs | 32 ++++++------- 3 files changed, 54 insertions(+), 60 deletions(-) (limited to 'code/api/src/Endpoints/V1/ApiTokens') diff --git a/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs b/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs index 60b00ff..6bc2fdc 100644 --- a/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs +++ b/code/api/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs @@ -4,13 +4,12 @@ namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens; public class CreateTokenRoute : RouteBaseSync.WithRequest.WithActionResult { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; private readonly AppConfiguration _configuration; private readonly ILogger _logger; - public CreateTokenRoute(AppDbContext context, VaultService vaultService, ILogger logger) - { - _context = context; + public CreateTokenRoute(MainAppDatabase database, VaultService vaultService, ILogger logger) { + _database = database; _configuration = vaultService.GetCurrentAppConfiguration(); _logger = logger; } @@ -24,24 +23,19 @@ public class CreateTokenRoute : RouteBaseSync.WithRequest c.Id == LoggedInUser.Id); - if (user == default) - { + public override ActionResult Handle(ApiAccessToken.ApiAccessTokenDto request) { + var user = _database.Users.SingleOrDefault(c => c.Id == LoggedInUser.Id); + if (user == default) { return NotFound(new KnownProblemModel("User does not exist")); } var token_entropy = _configuration.APP_AES_KEY; - if (token_entropy.IsNullOrWhiteSpace()) - { + if (token_entropy.IsNullOrWhiteSpace()) { _logger.LogWarning("No token entropy is available, Basic auth is disabled"); return NotFound(); } - var access_token = new ApiAccessToken() - { - Id = Guid.NewGuid(), + var accessToken = new ApiAccessToken() { User = user, ExpiryDate = request.ExpiryDate.ToUniversalTime(), AllowCreate = request.AllowCreate, @@ -50,8 +44,8 @@ public class CreateTokenRoute : RouteBaseSync.WithRequest.WithActionResult { - private readonly AppDbContext _context; - private readonly ILogger _logger; + private readonly MainAppDatabase _database; + private readonly ILogger _logger; - public DeleteTokenRoute(AppDbContext context, ILogger logger) { - _context = context; - _logger = logger; - } + public DeleteTokenRoute(MainAppDatabase database, ILogger logger) { + _database = database; + _logger = logger; + } - /// - /// Delete an api token, rendering it unusable - /// - /// Id of the token to delete - /// Nothing - [ApiVersion(ApiSpecV1.VERSION_STRING)] - [HttpDelete("~/v{version:apiVersion}/api-tokens/delete")] - [ProducesResponseType(200)] - [ProducesResponseType(404)] - public override ActionResult Handle(Guid id) { - var token = _context.AccessTokens.SingleOrDefault(c => c.Id == id); - if (token == default) { - _logger.LogWarning("A deletion request of an already deleted (maybe) api token was received."); - return NotFound(); - } + /// + /// Delete an api token, rendering it unusable + /// + /// Id of the token to delete + /// Nothing + [ApiVersion(ApiSpecV1.VERSION_STRING)] + [HttpDelete("~/v{version:apiVersion}/api-tokens/delete")] + [ProducesResponseType(200)] + [ProducesResponseType(404)] + public override ActionResult Handle(Guid id) { + var token = _database.AccessTokens.SingleOrDefault(c => c.Id == id); + if (token == default) { + _logger.LogWarning("A deletion request of an already deleted (maybe) api token was received."); + return NotFound(); + } - _context.AccessTokens.Remove(token); - _context.SaveChanges(); - return Ok(); - } -} + _database.AccessTokens.Remove(token); + _database.SaveChanges(); + return Ok(); + } +} \ No newline at end of file diff --git a/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs b/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs index 59fd077..19790e4 100644 --- a/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs +++ b/code/api/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs @@ -2,21 +2,21 @@ namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens; public class GetTokensRoute : RouteBaseSync.WithoutRequest.WithResult>> { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - public GetTokensRoute(AppDbContext context) { - _context = context; - } + public GetTokensRoute(MainAppDatabase database) { + _database = database; + } - /// - /// Get all tokens, both active and inactive. - /// - /// A list of tokens - [ApiVersion(ApiSpecV1.VERSION_STRING)] - [HttpGet("~/v{version:apiVersion}/api-tokens")] - [ProducesResponseType(200, Type = typeof(List))] - [ProducesResponseType(204)] - public override ActionResult> Handle() { - return Ok(_context.AccessTokens.Where(c => c.User.Id == LoggedInUser.Id).Select(c => c.AsDto)); - } -} + /// + /// Get all tokens, both active and inactive. + /// + /// A list of tokens + [ApiVersion(ApiSpecV1.VERSION_STRING)] + [HttpGet("~/v{version:apiVersion}/api-tokens")] + [ProducesResponseType(200, Type = typeof(List))] + [ProducesResponseType(204)] + public override ActionResult> Handle() { + return Ok(_database.AccessTokens.Where(c => c.User.Id == LoggedInUser.Id).Select(c => c.AsDto)); + } +} \ No newline at end of file -- cgit v1.3