aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/Internal/Root
diff options
context:
space:
mode:
Diffstat (limited to 'code/api/src/Endpoints/Internal/Root')
-rw-r--r--code/api/src/Endpoints/Internal/Root/ValidateRoute.cs28
1 files changed, 21 insertions, 7 deletions
diff --git a/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs b/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs
index 428a1a2..8f0882d 100644
--- a/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs
+++ b/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs
@@ -2,13 +2,15 @@ namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;
public class ValidateRoute : RouteBaseSync.WithRequest<ValidateRoute.QueryParams>.WithActionResult
{
- private readonly UserService _userService;
- private readonly string _continueTo;
+ private readonly EmailValidationService _emailValidation;
+ private readonly string CanonicalFrontendUrl;
+ private readonly ILogger<ValidateRoute> _logger;
- public ValidateRoute(UserService userService, VaultService vaultService) {
- _userService = userService;
+ public ValidateRoute(VaultService vaultService, EmailValidationService emailValidation, ILogger<ValidateRoute> logger) {
+ _emailValidation = emailValidation;
+ _logger = logger;
var c = vaultService.GetCurrentAppConfiguration();
- _continueTo = c.CANONICAL_FRONTEND_URL + "/portal?msg=emailValidated";
+ CanonicalFrontendUrl = c.CANONICAL_FRONTEND_URL;
}
public class QueryParams
@@ -19,7 +21,19 @@ public class ValidateRoute : RouteBaseSync.WithRequest<ValidateRoute.QueryParams
[HttpGet("~/_/validate")]
public override ActionResult Handle([FromQuery] QueryParams request) {
- _userService.FulfillEmailValidationRequest(request.Id, LoggedInUser.Id);
- return Redirect(_continueTo);
+ var isFulfilled = _emailValidation.FulfillEmailValidationRequest(request.Id, LoggedInUser.Id);
+ if (!isFulfilled) {
+ _logger.LogError("Email validation fulfillment failed for request {requestId} and user {userId}", request.Id, LoggedInUser.Id);
+ return StatusCode(400, $"""
+<html>
+<body>
+<h3>The validation could not be completed</h3>
+<p>We are working on fixing this, in the meantime, have patience.</p>
+<a href="{CanonicalFrontendUrl}">Click here to go back to {CanonicalFrontendUrl}</a>
+</body>
+""");
+ }
+
+ return Redirect(CanonicalFrontendUrl + "/portal?msg=emailValidated");
}
} \ No newline at end of file