blob: 8f0882db560ac7d6469ab4f082fa17206de94fd0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;
public class ValidateRoute : RouteBaseSync.WithRequest<ValidateRoute.QueryParams>.WithActionResult
{
private readonly EmailValidationService _emailValidation;
private readonly string CanonicalFrontendUrl;
private readonly ILogger<ValidateRoute> _logger;
public ValidateRoute(VaultService vaultService, EmailValidationService emailValidation, ILogger<ValidateRoute> logger) {
_emailValidation = emailValidation;
_logger = logger;
var c = vaultService.GetCurrentAppConfiguration();
CanonicalFrontendUrl = c.CANONICAL_FRONTEND_URL;
}
public class QueryParams
{
[FromQuery]
public Guid Id { get; set; }
}
[HttpGet("~/_/validate")]
public override ActionResult Handle([FromQuery] QueryParams request) {
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");
}
}
|