aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs
blob: 428a1a2df95eac3f8e0284f44eec70836f1b674b (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
namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;

public class ValidateRoute : RouteBaseSync.WithRequest<ValidateRoute.QueryParams>.WithActionResult
{
    private readonly UserService _userService;
    private readonly string _continueTo;

    public ValidateRoute(UserService userService, VaultService vaultService) {
        _userService = userService;
        var c = vaultService.GetCurrentAppConfiguration();
        _continueTo = c.CANONICAL_FRONTEND_URL + "/portal?msg=emailValidated";
    }

    public class QueryParams
    {
        [FromQuery]
        public Guid Id { get; set; }
    }

    [HttpGet("~/_/validate")]
    public override ActionResult Handle([FromQuery] QueryParams request) {
        _userService.FulfillEmailValidationRequest(request.Id, LoggedInUser.Id);
        return Redirect(_continueTo);
    }
}