aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/Internal/PasswordResetRequests
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-11-14 05:25:12 +0100
committerivarlovlie <git@ivarlovlie.no>2022-11-14 05:25:12 +0100
commit99b0c09a6bb984d811b63788015cfad1855b5f3c (patch)
tree8b6c3c9b70384bd3f00a46945e8bcb5bd474b3a1 /code/api/src/Endpoints/Internal/PasswordResetRequests
parent798895a91f8533f22f94f4c4800dc9a2c9628ab6 (diff)
downloadgreatoffice-99b0c09a6bb984d811b63788015cfad1855b5f3c.tar.xz
greatoffice-99b0c09a6bb984d811b63788015cfad1855b5f3c.zip
refactor: Endpoints
- Model payloads in relevant route class - Move RequestTimeZoneInfo out of EndpointBase
Diffstat (limited to 'code/api/src/Endpoints/Internal/PasswordResetRequests')
-rw-r--r--code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestPayload.cs6
-rw-r--r--code/api/src/Endpoints/Internal/PasswordResetRequests/CreateResetRequestRoute.cs19
-rw-r--r--code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestPayload.cs14
-rw-r--r--code/api/src/Endpoints/Internal/PasswordResetRequests/FulfillResetRequestRoute.cs10
4 files changed, 17 insertions, 32 deletions
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<CreateResetRequestPayload>.WithActionResult
+public class CreateResetRequestRoute : RouteBaseAsync.WithRequest<CreateResetRequestRoute.Payload>.WithActionResult
{
- private readonly ILogger<Route> _logger;
+ private readonly ILogger<CreateResetRequestRoute> _logger;
private readonly PasswordResetService _passwordResetService;
private readonly MainAppDatabase _database;
- public Route(ILogger<Route> logger, PasswordResetService passwordResetService, MainAppDatabase database) {
+ public CreateResetRequestRoute(ILogger<CreateResetRequestRoute> logger, PasswordResetService passwordResetService, MainAppDatabase database) {
_logger = logger;
_passwordResetService = passwordResetService;
_database = database;
}
- /// <summary>
- /// Create a new password reset request.
- /// </summary>
- /// <param name="request"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
+ public class Payload
+ {
+ public string Username { get; set; }
+ }
+
[AllowAnonymous]
[HttpPost("~/_/password-reset-request/create")]
- public override async Task<ActionResult> HandleAsync(CreateResetRequestPayload request, CancellationToken cancellationToken = default) {
+ public override async Task<ActionResult> 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
-{
- /// <summary>
- /// Id of the password reset request to fulfill
- /// </summary>
- public Guid Id { get; set; }
-
- /// <summary>
- /// New password to set on the relevant account
- /// </summary>
- 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<FulfillResetRequestPayload>.WithActionResult
+public class FulfillResetRequestRoute : RouteBaseAsync.WithRequest<FulfillResetRequestRoute.Payload>.WithActionResult
{
private readonly PasswordResetService _passwordResetService;
@@ -8,9 +8,15 @@ public class FulfillResetRequestRoute : RouteBaseAsync.WithRequest<FulfillResetR
_passwordResetService = passwordResetService;
}
+ public class Payload
+ {
+ public Guid Id { get; set; }
+ public string NewPassword { get; set; }
+ }
+
[AllowAnonymous]
[HttpPost("~/_/password-reset-request/fulfill")]
- public override async Task<ActionResult> HandleAsync(FulfillResetRequestPayload request, CancellationToken cancellationToken = default) {
+ public override async Task<ActionResult> 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(),