Fixed validation
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user