From 99b0c09a6bb984d811b63788015cfad1855b5f3c Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Mon, 14 Nov 2022 11:25:12 +0700 Subject: refactor: Endpoints - Model payloads in relevant route class - Move RequestTimeZoneInfo out of EndpointBase --- .../CreateResetRequestPayload.cs | 6 ------ .../PasswordResetRequests/CreateResetRequestRoute.cs | 19 +++++++++---------- .../FulfillResetRequestPayload.cs | 14 -------------- .../PasswordResetRequests/FulfillResetRequestRoute.cs | 10 ++++++++-- 4 files changed, 17 insertions(+), 32 deletions(-) delete mode 100644 code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestPayload.cs delete mode 100644 code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestPayload.cs (limited to 'code/api/src/Endpoints/Internal/PasswordResetRequests') diff --git a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestPayload.cs b/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestPayload.cs deleted file mode 100644 index 1adb344..0000000 --- a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestPayload.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests; - -public class CreateResetRequestPayload -{ - public string Username { get; set; } -} \ No newline at end of file diff --git a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs b/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs index bb72d38..49df35b 100644 --- a/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs +++ b/code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs @@ -1,26 +1,25 @@ namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests; -public class Route : RouteBaseAsync.WithRequest.WithActionResult +public class CreateResetRequestRoute : RouteBaseAsync.WithRequest.WithActionResult { - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly PasswordResetService _passwordResetService; private readonly MainAppDatabase _database; - public Route(ILogger logger, PasswordResetService passwordResetService, MainAppDatabase database) { + public CreateResetRequestRoute(ILogger logger, PasswordResetService passwordResetService, MainAppDatabase database) { _logger = logger; _passwordResetService = passwordResetService; _database = database; } - /// - /// Create a new password reset request. - /// - /// - /// - /// + public class Payload + { + public string Username { get; set; } + } + [AllowAnonymous] [HttpPost("~/_/password-reset-request/create")] - public override async Task HandleAsync(CreateResetRequestPayload request, CancellationToken cancellationToken = default) { + public override async Task HandleAsync(Payload request, CancellationToken cancellationToken = default) { if (!request.Username.IsValidEmailAddress()) { _logger.LogInformation("Username is invalid, not doing request for password change"); return KnownProblem("Invalid email address", request.Username + " looks like an invalid email address"); diff --git a/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestPayload.cs b/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestPayload.cs deleted file mode 100644 index f0fb59f..0000000 --- a/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestPayload.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests; - -public class FulfillResetRequestPayload -{ - /// - /// Id of the password reset request to fulfill - /// - public Guid Id { get; set; } - - /// - /// New password to set on the relevant account - /// - public string NewPassword { get; set; } -} diff --git a/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestRoute.cs b/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestRoute.cs index 5749242..c831470 100644 --- a/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestRoute.cs +++ b/code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestRoute.cs @@ -1,6 +1,6 @@ namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests; -public class FulfillResetRequestRoute : RouteBaseAsync.WithRequest.WithActionResult +public class FulfillResetRequestRoute : RouteBaseAsync.WithRequest.WithActionResult { private readonly PasswordResetService _passwordResetService; @@ -8,9 +8,15 @@ public class FulfillResetRequestRoute : RouteBaseAsync.WithRequest HandleAsync(FulfillResetRequestPayload request, CancellationToken cancellationToken = default) { + public override async Task HandleAsync(Payload request, CancellationToken cancellationToken = default) { return await _passwordResetService.FulfillRequestAsync(request.Id, request.NewPassword, cancellationToken) switch { FulfillPasswordResetRequestResult.REQUEST_NOT_FOUND => NotFound(), FulfillPasswordResetRequestResult.USER_NOT_FOUND => NotFound(), -- cgit v1.3