Refactor AcceptContractCommandHandler to return AcceptContractResponseDto and integrate OTP verification

This commit is contained in:
masoodafar-web
2025-11-16 17:29:30 +03:30
parent 32ee9a03dc
commit 13b4778f01
2 changed files with 18 additions and 4 deletions

View File

@@ -1,7 +1,9 @@
using CMSMicroservice.Protobuf.Protos.OtpToken;
using CMSMicroservice.Protobuf.Protos.UserContract;
using FrontOffice.BFF.Application.UserCQ.Commands.VerifyOtpToken;
namespace FrontOffice.BFF.Application.UserCQ.Commands.AcceptContract;
public class AcceptContractCommandHandler : IRequestHandler<AcceptContractCommand, Unit>
public class AcceptContractCommandHandler : IRequestHandler<AcceptContractCommand, AcceptContractResponseDto>
{
private readonly IApplicationContractContext _context;
private readonly ICurrentUserService _currentUserService;
@@ -12,7 +14,7 @@ public class AcceptContractCommandHandler : IRequestHandler<AcceptContractComman
_currentUserService = currentUserService;
}
public async Task<Unit> Handle(AcceptContractCommand request, CancellationToken cancellationToken)
public async Task<AcceptContractResponseDto> Handle(AcceptContractCommand request, CancellationToken cancellationToken)
{
await _context.UserContract.CreateNewUserContractAsync(new CreateNewUserContractRequest()
{
@@ -21,6 +23,17 @@ public class AcceptContractCommandHandler : IRequestHandler<AcceptContractComman
ContractId = 1,
SignedPdfFile = request.ContractHtml,
}, cancellationToken: cancellationToken);
return new Unit();
var response = await _context.OtpToken.VerifyOtpTokenAsync(request: request.Adapt<VerifyOtpTokenRequest>(), cancellationToken: cancellationToken);
var result = response.Adapt<AcceptContractResponseDto>();
if (response.Success && response.UserId.HasValue && response.UserId.Value > 0)
{
var token = await _context.User.GetJwtTokenAsync(request: new()
{
Id = response.UserId.Value
}, cancellationToken: cancellationToken);
result.Token = token?.Token;
}
return result;
}
}