Return pending applications for authorities
This commit is contained in:
		| @@ -6,7 +6,7 @@ namespace ApplicationLayer.Services.VisaApplications.Handlers; | |||||||
| public interface IVisaApplicationRequestsHandler | public interface IVisaApplicationRequestsHandler | ||||||
| { | { | ||||||
|     /// Returns all applications for approving authorities |     /// Returns all applications for approving authorities | ||||||
|     Task<List<VisaApplicationModelForAuthority>> GetAllAsync(CancellationToken cancellationToken); |     Task<List<VisaApplicationModelForAuthority>> GetPendingAsync(CancellationToken cancellationToken); | ||||||
|  |  | ||||||
|     /// Returns all applications of one applicant |     /// Returns all applications of one applicant | ||||||
|     Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(CancellationToken cancellationToken); |     Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(CancellationToken cancellationToken); | ||||||
|   | |||||||
| @@ -19,9 +19,9 @@ public class VisaApplicationRequestsHandler( | |||||||
|     IDateTimeProvider dateTimeProvider, |     IDateTimeProvider dateTimeProvider, | ||||||
|     IUserIdProvider userIdProvider) : IVisaApplicationRequestsHandler |     IUserIdProvider userIdProvider) : IVisaApplicationRequestsHandler | ||||||
| { | { | ||||||
|     async Task<List<VisaApplicationModelForAuthority>> IVisaApplicationRequestsHandler.GetAllAsync(CancellationToken cancellationToken) |     async Task<List<VisaApplicationModelForAuthority>> IVisaApplicationRequestsHandler.GetPendingAsync(CancellationToken cancellationToken) | ||||||
|     { |     { | ||||||
|         var applicationsList = await applications.GetAllAsync(cancellationToken); |         var applicationsList = await applications.GetPendingApplicationsAsync(cancellationToken); | ||||||
|  |  | ||||||
|         var applicationModels = applicationsList |         var applicationModels = applicationsList | ||||||
|             .Select(a => MapVisaApplicationToModelForAuthorities(a, cancellationToken).Result) |             .Select(a => MapVisaApplicationToModelForAuthorities(a, cancellationToken).Result) | ||||||
|   | |||||||
| @@ -10,4 +10,7 @@ public interface IVisaApplicationsRepository : IGenericRepository<VisaApplicatio | |||||||
|  |  | ||||||
|     /// Get specific application of specific user |     /// Get specific application of specific user | ||||||
|     Task<VisaApplication> GetByApplicantAndApplicationIdAsync(Guid applicantId, Guid applicationId, CancellationToken cancellationToken); |     Task<VisaApplication> GetByApplicantAndApplicationIdAsync(Guid applicantId, Guid applicationId, CancellationToken cancellationToken); | ||||||
|  |  | ||||||
|  |     /// Returns pending applications for approving authorities | ||||||
|  |     Task<List<VisaApplication>> GetPendingApplicationsAsync(CancellationToken cancellationToken); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -27,4 +27,10 @@ public sealed class VisaApplicationsRepository(IGenericReader reader, IGenericWr | |||||||
|             .SingleOrDefaultAsync(va => va.Id == applicationId && va.ApplicantId == applicantId, cancellationToken); |             .SingleOrDefaultAsync(va => va.Id == applicationId && va.ApplicantId == applicantId, cancellationToken); | ||||||
|         return result ?? throw new ApplicationNotFoundByApplicantAndApplicationIdException(applicationId); |         return result ?? throw new ApplicationNotFoundByApplicantAndApplicationIdException(applicationId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     async Task<List<VisaApplication>> IVisaApplicationsRepository.GetPendingApplicationsAsync(CancellationToken cancellationToken) | ||||||
|  |     { | ||||||
|  |         var result = LoadDomain().Where(va => va.Status == ApplicationStatus.Pending); | ||||||
|  |         return await result.ToListAsync(cancellationToken); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -15,16 +15,16 @@ public class VisaApplicationController( | |||||||
|     IVisaApplicationRequestsHandler visaApplicationRequestsHandler, |     IVisaApplicationRequestsHandler visaApplicationRequestsHandler, | ||||||
|     IValidator<VisaApplicationCreateRequest> visaApplicationCreateRequestValidator) : ControllerBase |     IValidator<VisaApplicationCreateRequest> visaApplicationCreateRequestValidator) : ControllerBase | ||||||
| { | { | ||||||
|     /// <summary> Returns all applications from DB </summary> |     /// <summary> Returns pending applications from DB </summary> | ||||||
|     /// <remarks> Accessible only for approving authorities </remarks> |     /// <remarks> Accessible only for approving authorities </remarks> | ||||||
|     [HttpGet] |     [HttpGet("pending")] | ||||||
|     [ProducesResponseType<List<VisaApplicationModelForAuthority>>(StatusCodes.Status200OK)] |     [ProducesResponseType<List<VisaApplicationModelForAuthority>>(StatusCodes.Status200OK)] | ||||||
|     [ProducesResponseType(StatusCodes.Status403Forbidden)] |     [ProducesResponseType(StatusCodes.Status403Forbidden)] | ||||||
|     [ProducesResponseType(StatusCodes.Status401Unauthorized)] |     [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||||
|     [Authorize(policy: PolicyConstants.ApprovingAuthorityPolicy)] |     [Authorize(policy: PolicyConstants.ApprovingAuthorityPolicy)] | ||||||
|     public async Task<IActionResult> Get(CancellationToken cancellationToken) |     public async Task<IActionResult> Get(CancellationToken cancellationToken) | ||||||
|     { |     { | ||||||
|         var result = await visaApplicationRequestsHandler.GetAllAsync(cancellationToken); |         var result = await visaApplicationRequestsHandler.GetPendingAsync(cancellationToken); | ||||||
|         return Ok(result); |         return Ok(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -36,7 +36,7 @@ public class VisaApplicationController( | |||||||
|     [ProducesResponseType(StatusCodes.Status401Unauthorized)] |     [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||||
|     [ProducesResponseType(StatusCodes.Status404NotFound)] |     [ProducesResponseType(StatusCodes.Status404NotFound)] | ||||||
|     [Authorize(policy: PolicyConstants.ApplicantPolicy)] |     [Authorize(policy: PolicyConstants.ApplicantPolicy)] | ||||||
|     [Route("OfApplicant")] |     [Route("ofApplicant")] | ||||||
|     public async Task<IActionResult> GetForApplicant(CancellationToken cancellationToken) |     public async Task<IActionResult> GetForApplicant(CancellationToken cancellationToken) | ||||||
|     { |     { | ||||||
|         var result = await visaApplicationRequestsHandler.GetForApplicantAsync(cancellationToken); |         var result = await visaApplicationRequestsHandler.GetForApplicantAsync(cancellationToken); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user