Fixed validation

This commit is contained in:
2024-08-26 11:25:16 +03:00
parent 00aa3ab6af
commit d009181b91
3 changed files with 15 additions and 16 deletions

View File

@@ -15,20 +15,13 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation
IValidator<PastVisit> pastVisitValidator,
IApplicantsRepository applicants,
IUserIdProvider userIdProvider)
{
//todo fix
WhenAsync(
async (_, ct) =>
{
return await applicants.IsApplicantNonResidentByUserId(userIdProvider.GetUserId(), ct);
},
() =>
{
RuleFor(r => r.ReentryPermit)
.NotEmpty()
.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)
.NotEmpty()
@@ -41,8 +34,6 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation
.IsInEnum();
RuleFor(r => r.ValidDaysRequested)
.NotEmpty()
.WithMessage("Valid days requested can not be empty")
.GreaterThan(0)
.WithMessage($"Valid days requested should be positive number and less than {ConfigurationConstraints.MaxValidDays}")
.LessThanOrEqualTo(ConfigurationConstraints.MaxValidDays)

View File

@@ -26,6 +26,7 @@ namespace SchengenVisaApi.Controllers
[HttpPost]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status409Conflict)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Route("register")]
public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken)
{
@@ -42,6 +43,7 @@ namespace SchengenVisaApi.Controllers
[ProducesResponseType(StatusCodes.Status409Conflict)]
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Route("authorities")]
[Authorize(policy: PolicyConstants.AdminPolicy)]
public async Task<IActionResult> RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken)
@@ -84,6 +86,7 @@ namespace SchengenVisaApi.Controllers
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Route("authorities/{authorityAccountId:guid}")]
[Authorize(policy: PolicyConstants.AdminPolicy)]
public async Task<IActionResult> ChangeAuthorityAuthData(Guid authorityAccountId, AuthData authData, CancellationToken cancellationToken)

View File

@@ -2,6 +2,7 @@ using ApplicationLayer.InfrastructureServicesInterfaces;
using ApplicationLayer.Services.VisaApplications.Handlers;
using ApplicationLayer.Services.VisaApplications.Models;
using ApplicationLayer.Services.VisaApplications.Requests;
using FluentValidation;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SchengenVisaApi.Common;
@@ -13,7 +14,8 @@ namespace SchengenVisaApi.Controllers;
[Route("visaApplications")]
public class VisaApplicationController(
IVisaApplicationRequestsHandler visaApplicationRequestsHandler,
IUserIdProvider userIdProvider) : ControllerBase
IUserIdProvider userIdProvider,
IValidator<VisaApplicationCreateRequest> visaApplicationCreateRequestValidator) : ControllerBase
{
/// <summary> Returns all applications from DB </summary>
/// <remarks> Accessible only for approving authorities </remarks>
@@ -51,9 +53,12 @@ public class VisaApplicationController(
[ProducesResponseType(StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Authorize(policy: PolicyConstants.ApplicantPolicy)]
public async Task<IActionResult> Create(VisaApplicationCreateRequest request, CancellationToken cancellationToken)
{
await visaApplicationCreateRequestValidator.ValidateAndThrowAsync(request, cancellationToken);
var userId = userIdProvider.GetUserId();
await visaApplicationRequestsHandler.HandleCreateRequestAsync(userId, request, cancellationToken);
return Ok();