|
| 1 | +using Fossa.API.Core.Entities; |
| 2 | +using Fossa.API.Core.Messages.Queries; |
| 3 | +using Fossa.API.Core.Tenant; |
| 4 | +using Fossa.API.Core.User; |
| 5 | +using Fossa.API.Web.ApiModels; |
| 6 | +using TIKSN.Mapping; |
| 7 | + |
| 8 | +namespace Fossa.API.Web.Messages.Queries; |
| 9 | + |
| 10 | +public class EmployeeRetrievalApiQueryHandler : |
| 11 | + ApiMessageHandler<EmployeeId, EmployeeRetrievalApiQuery, EmployeeRetrievalModel, EmployeeRetrievalQuery, EmployeeEntity> |
| 12 | +{ |
| 13 | + private readonly IMapper<EmployeeEntity, EmployeeRetrievalModel> _domainResponseToApiResponseMapper; |
| 14 | + |
| 15 | + public EmployeeRetrievalApiQueryHandler( |
| 16 | + IMapper<EmployeeEntity, EmployeeRetrievalModel> domainResponseToApiResponseMapper, |
| 17 | + ISender sender, |
| 18 | + ITenantIdProvider<Guid> tenantIdProvider, |
| 19 | + IUserIdProvider<Guid> userIdProvider, |
| 20 | + IMapper<EmployeeId, long> domainIdentityToDataIdentityMapper, |
| 21 | + IMapper<long, EmployeeId> dataIdentityToDomainIdentityMapper) |
| 22 | + : base( |
| 23 | + sender, |
| 24 | + tenantIdProvider, |
| 25 | + userIdProvider, |
| 26 | + domainIdentityToDataIdentityMapper, |
| 27 | + dataIdentityToDomainIdentityMapper) |
| 28 | + { |
| 29 | + _domainResponseToApiResponseMapper = domainResponseToApiResponseMapper ?? throw new ArgumentNullException(nameof(domainResponseToApiResponseMapper)); |
| 30 | + } |
| 31 | + |
| 32 | + protected override EmployeeRetrievalModel MapToApiResponse(EmployeeEntity domainResponse) |
| 33 | + { |
| 34 | + return _domainResponseToApiResponseMapper.Map(domainResponse); |
| 35 | + } |
| 36 | + |
| 37 | + protected override EmployeeRetrievalQuery MapToDomainRequest(EmployeeRetrievalApiQuery apiRequest) |
| 38 | + { |
| 39 | + var tenantId = _tenantIdProvider.GetTenantId(); |
| 40 | + var userId = _userIdProvider.GetUserId(); |
| 41 | + |
| 42 | + return new EmployeeRetrievalQuery( |
| 43 | + _dataIdentityToDomainIdentityMapper.Map(apiRequest.Id), |
| 44 | + tenantId, |
| 45 | + userId); |
| 46 | + } |
| 47 | +} |
0 commit comments