diff options
Diffstat (limited to 'code/api/src/Endpoints/Internal/Root')
| -rw-r--r-- | code/api/src/Endpoints/Internal/Root/ValidateRoute.cs | 28 |
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 |
