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)
{
var result = await tokenService.RefreshTokenAsync(request.RefreshToken);
return new LoginPayload(result.UserAccount.UserAccountId, result.UserAccount.Username, result.RefreshToken, result.AccessToken);
}
}