aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/Internal/Root/ValidateRoute.cs
blob: 682a869880a09cb3a217713b797f5d65408dd015 (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 + "/?act=email-validated";
    }

    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);
    }
}