Return pending applications for authorities
This commit is contained in:
		| @@ -6,7 +6,7 @@ namespace ApplicationLayer.Services.VisaApplications.Handlers; | ||||
| public interface IVisaApplicationRequestsHandler | ||||
| { | ||||
|     /// Returns all applications for approving authorities | ||||
|     Task<List<VisaApplicationModelForAuthority>> GetAllAsync(CancellationToken cancellationToken); | ||||
|     Task<List<VisaApplicationModelForAuthority>> GetPendingAsync(CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Returns all applications of one applicant | ||||
|     Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(CancellationToken cancellationToken); | ||||
|   | ||||
| @@ -19,9 +19,9 @@ public class VisaApplicationRequestsHandler( | ||||
|     IDateTimeProvider dateTimeProvider, | ||||
|     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 | ||||
|             .Select(a => MapVisaApplicationToModelForAuthorities(a, cancellationToken).Result) | ||||
|   | ||||
| @@ -10,4 +10,7 @@ public interface IVisaApplicationsRepository : IGenericRepository<VisaApplicatio | ||||
|  | ||||
|     /// Get specific application of specific user | ||||
|     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); | ||||
|         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, | ||||
|     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> | ||||
|     [HttpGet] | ||||
|     [HttpGet("pending")] | ||||
|     [ProducesResponseType<List<VisaApplicationModelForAuthority>>(StatusCodes.Status200OK)] | ||||
|     [ProducesResponseType(StatusCodes.Status403Forbidden)] | ||||
|     [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||
|     [Authorize(policy: PolicyConstants.ApprovingAuthorityPolicy)] | ||||
|     public async Task<IActionResult> Get(CancellationToken cancellationToken) | ||||
|     { | ||||
|         var result = await visaApplicationRequestsHandler.GetAllAsync(cancellationToken); | ||||
|         var result = await visaApplicationRequestsHandler.GetPendingAsync(cancellationToken); | ||||
|         return Ok(result); | ||||
|     } | ||||
|  | ||||
| @@ -36,7 +36,7 @@ public class VisaApplicationController( | ||||
|     [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||
|     [ProducesResponseType(StatusCodes.Status404NotFound)] | ||||
|     [Authorize(policy: PolicyConstants.ApplicantPolicy)] | ||||
|     [Route("OfApplicant")] | ||||
|     [Route("ofApplicant")] | ||||
|     public async Task<IActionResult> GetForApplicant(CancellationToken cancellationToken) | ||||
|     { | ||||
|         var result = await visaApplicationRequestsHandler.GetForApplicantAsync(cancellationToken); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user