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