using Features.Auth.Dtos; using Features.Auth.Services; using MediatR; namespace Features.Auth.Commands.RefreshToken; /// /// Handles by validating the refresh token and issuing a new /// access/refresh token pair. /// /// Service used to validate and exchange the refresh token. public class RefreshTokenHandler(ITokenService tokenService) : IRequestHandler { public async Task Handle( RefreshTokenCommand request, CancellationToken cancellationToken ) { RefreshTokenResult result = await tokenService.RefreshTokenAsync(request.RefreshToken); return new LoginPayload( result.UserAccount.UserAccountId, result.UserAccount.Username, result.RefreshToken, result.AccessToken ); } }