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