aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/Internal/PasswordResetRequests/IsResetRequestValidRoute.cs
blob: a87c0a9655de171865e325680f3fa073cd0ba4c2 (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
namespace IOL.GreatOffice.Api.Endpoints.Internal.PasswordResetRequests;

public class IsResetRequestValidRoute : RouteBaseAsync.WithRequest<Guid>.WithActionResult<IsResetRequestValidRoute.ResponseModel>
{
    private readonly PasswordResetService _passwordResetService;

    public IsResetRequestValidRoute(PasswordResetService passwordResetService) {
        _passwordResetService = passwordResetService;
    }

    public class ResponseModel
    {
        public ResponseModel(bool isValid) {
            IsValid = isValid;
        }

        public bool IsValid { get; }
    }

    [AllowAnonymous]
    [HttpGet("~/_/password-reset-request/is-valid")]
    public override async Task<ActionResult<ResponseModel>> HandleAsync(Guid id, CancellationToken cancellationToken = default) {
        var request = await _passwordResetService.GetRequestAsync(id, cancellationToken);
        return Ok(request == default ? new ResponseModel(false) : new ResponseModel(!request.IsExpired));
    }
}