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