Fixed validation
This commit is contained in:
		| @@ -15,20 +15,13 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|             IValidator<PastVisit> pastVisitValidator, |             IValidator<PastVisit> pastVisitValidator, | ||||||
|             IApplicantsRepository applicants, |             IApplicantsRepository applicants, | ||||||
|             IUserIdProvider userIdProvider) |             IUserIdProvider userIdProvider) | ||||||
|         { |  | ||||||
|             //todo fix |  | ||||||
|             WhenAsync( |  | ||||||
|                 async (_, ct) => |  | ||||||
|                 { |  | ||||||
|                     return await applicants.IsApplicantNonResidentByUserId(userIdProvider.GetUserId(), ct); |  | ||||||
|                 }, |  | ||||||
|                 () => |  | ||||||
|         { |         { | ||||||
|             RuleFor(r => r.ReentryPermit) |             RuleFor(r => r.ReentryPermit) | ||||||
|                 .NotEmpty() |                 .NotEmpty() | ||||||
|                 .WithMessage("Non-residents must provide re-entry permission") |                 .WithMessage("Non-residents must provide re-entry permission") | ||||||
|                         .SetValidator(reentryPermitValidator); |                 .SetValidator(reentryPermitValidator) | ||||||
|                 }); |                 .WhenAsync(async (r, ct) => | ||||||
|  |                     await applicants.IsApplicantNonResidentByUserId(userIdProvider.GetUserId(), ct)); | ||||||
|  |  | ||||||
|             RuleFor(r => r.DestinationCountry) |             RuleFor(r => r.DestinationCountry) | ||||||
|                 .NotEmpty() |                 .NotEmpty() | ||||||
| @@ -41,8 +34,6 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|                 .IsInEnum(); |                 .IsInEnum(); | ||||||
|  |  | ||||||
|             RuleFor(r => r.ValidDaysRequested) |             RuleFor(r => r.ValidDaysRequested) | ||||||
|                 .NotEmpty() |  | ||||||
|                 .WithMessage("Valid days requested can not be empty") |  | ||||||
|                 .GreaterThan(0) |                 .GreaterThan(0) | ||||||
|                 .WithMessage($"Valid days requested should be positive number and less than {ConfigurationConstraints.MaxValidDays}") |                 .WithMessage($"Valid days requested should be positive number and less than {ConfigurationConstraints.MaxValidDays}") | ||||||
|                 .LessThanOrEqualTo(ConfigurationConstraints.MaxValidDays) |                 .LessThanOrEqualTo(ConfigurationConstraints.MaxValidDays) | ||||||
|   | |||||||
| @@ -26,6 +26,7 @@ namespace SchengenVisaApi.Controllers | |||||||
|         [HttpPost] |         [HttpPost] | ||||||
|         [ProducesResponseType(StatusCodes.Status200OK)] |         [ProducesResponseType(StatusCodes.Status200OK)] | ||||||
|         [ProducesResponseType(StatusCodes.Status409Conflict)] |         [ProducesResponseType(StatusCodes.Status409Conflict)] | ||||||
|  |         [ProducesResponseType(StatusCodes.Status400BadRequest)] | ||||||
|         [Route("register")] |         [Route("register")] | ||||||
|         public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken) |         public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken) | ||||||
|         { |         { | ||||||
| @@ -42,6 +43,7 @@ namespace SchengenVisaApi.Controllers | |||||||
|         [ProducesResponseType(StatusCodes.Status409Conflict)] |         [ProducesResponseType(StatusCodes.Status409Conflict)] | ||||||
|         [ProducesResponseType(StatusCodes.Status403Forbidden)] |         [ProducesResponseType(StatusCodes.Status403Forbidden)] | ||||||
|         [ProducesResponseType(StatusCodes.Status401Unauthorized)] |         [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||||
|  |         [ProducesResponseType(StatusCodes.Status400BadRequest)] | ||||||
|         [Route("authorities")] |         [Route("authorities")] | ||||||
|         [Authorize(policy: PolicyConstants.AdminPolicy)] |         [Authorize(policy: PolicyConstants.AdminPolicy)] | ||||||
|         public async Task<IActionResult> RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken) |         public async Task<IActionResult> RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken) | ||||||
| @@ -84,6 +86,7 @@ namespace SchengenVisaApi.Controllers | |||||||
|         [ProducesResponseType(StatusCodes.Status404NotFound)] |         [ProducesResponseType(StatusCodes.Status404NotFound)] | ||||||
|         [ProducesResponseType(StatusCodes.Status403Forbidden)] |         [ProducesResponseType(StatusCodes.Status403Forbidden)] | ||||||
|         [ProducesResponseType(StatusCodes.Status401Unauthorized)] |         [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||||
|  |         [ProducesResponseType(StatusCodes.Status400BadRequest)] | ||||||
|         [Route("authorities/{authorityAccountId:guid}")] |         [Route("authorities/{authorityAccountId:guid}")] | ||||||
|         [Authorize(policy: PolicyConstants.AdminPolicy)] |         [Authorize(policy: PolicyConstants.AdminPolicy)] | ||||||
|         public async Task<IActionResult> ChangeAuthorityAuthData(Guid authorityAccountId, AuthData authData, CancellationToken cancellationToken) |         public async Task<IActionResult> ChangeAuthorityAuthData(Guid authorityAccountId, AuthData authData, CancellationToken cancellationToken) | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ using ApplicationLayer.InfrastructureServicesInterfaces; | |||||||
| using ApplicationLayer.Services.VisaApplications.Handlers; | using ApplicationLayer.Services.VisaApplications.Handlers; | ||||||
| using ApplicationLayer.Services.VisaApplications.Models; | using ApplicationLayer.Services.VisaApplications.Models; | ||||||
| using ApplicationLayer.Services.VisaApplications.Requests; | using ApplicationLayer.Services.VisaApplications.Requests; | ||||||
|  | using FluentValidation; | ||||||
| using Microsoft.AspNetCore.Authorization; | using Microsoft.AspNetCore.Authorization; | ||||||
| using Microsoft.AspNetCore.Mvc; | using Microsoft.AspNetCore.Mvc; | ||||||
| using SchengenVisaApi.Common; | using SchengenVisaApi.Common; | ||||||
| @@ -13,7 +14,8 @@ namespace SchengenVisaApi.Controllers; | |||||||
| [Route("visaApplications")] | [Route("visaApplications")] | ||||||
| public class VisaApplicationController( | public class VisaApplicationController( | ||||||
|     IVisaApplicationRequestsHandler visaApplicationRequestsHandler, |     IVisaApplicationRequestsHandler visaApplicationRequestsHandler, | ||||||
|     IUserIdProvider userIdProvider) : ControllerBase |     IUserIdProvider userIdProvider, | ||||||
|  |     IValidator<VisaApplicationCreateRequest> visaApplicationCreateRequestValidator) : ControllerBase | ||||||
| { | { | ||||||
|     /// <summary> Returns all applications from DB </summary> |     /// <summary> Returns all applications from DB </summary> | ||||||
|     /// <remarks> Accessible only for approving authorities </remarks> |     /// <remarks> Accessible only for approving authorities </remarks> | ||||||
| @@ -51,9 +53,12 @@ public class VisaApplicationController( | |||||||
|     [ProducesResponseType(StatusCodes.Status403Forbidden)] |     [ProducesResponseType(StatusCodes.Status403Forbidden)] | ||||||
|     [ProducesResponseType(StatusCodes.Status401Unauthorized)] |     [ProducesResponseType(StatusCodes.Status401Unauthorized)] | ||||||
|     [ProducesResponseType(StatusCodes.Status404NotFound)] |     [ProducesResponseType(StatusCodes.Status404NotFound)] | ||||||
|  |     [ProducesResponseType(StatusCodes.Status400BadRequest)] | ||||||
|     [Authorize(policy: PolicyConstants.ApplicantPolicy)] |     [Authorize(policy: PolicyConstants.ApplicantPolicy)] | ||||||
|     public async Task<IActionResult> Create(VisaApplicationCreateRequest request, CancellationToken cancellationToken) |     public async Task<IActionResult> Create(VisaApplicationCreateRequest request, CancellationToken cancellationToken) | ||||||
|     { |     { | ||||||
|  |         await visaApplicationCreateRequestValidator.ValidateAndThrowAsync(request, cancellationToken); | ||||||
|  |  | ||||||
|         var userId = userIdProvider.GetUserId(); |         var userId = userIdProvider.GetUserId(); | ||||||
|         await visaApplicationRequestsHandler.HandleCreateRequestAsync(userId, request, cancellationToken); |         await visaApplicationRequestsHandler.HandleCreateRequestAsync(userId, request, cancellationToken); | ||||||
|         return Ok(); |         return Ok(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user