Fixed errors and wrong model
This commit is contained in:
@@ -53,6 +53,10 @@ public class VisaApplicationRequestsHandler(
|
|||||||
{
|
{
|
||||||
var applicantId = await applicants.GetApplicantIdByUserId(userIdProvider.GetUserId(), cancellationToken);
|
var applicantId = await applicants.GetApplicantIdByUserId(userIdProvider.GetUserId(), cancellationToken);
|
||||||
var application = await applications.GetByApplicantAndApplicationIdAsync(applicantId, applicationId, cancellationToken);
|
var application = await applications.GetByApplicantAndApplicationIdAsync(applicantId, applicationId, cancellationToken);
|
||||||
|
if (application.Status is ApplicationStatus.Approved or ApplicationStatus.Rejected)
|
||||||
|
{
|
||||||
|
throw new ApplicationAlreadyProcessedException();
|
||||||
|
}
|
||||||
|
|
||||||
application.Status = ApplicationStatus.Closed;
|
application.Status = ApplicationStatus.Closed;
|
||||||
await applications.UpdateAsync(application, cancellationToken);
|
await applications.UpdateAsync(application, cancellationToken);
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ public class VisaApplicationCreateRequestValidator : AbstractValidator<VisaAppli
|
|||||||
IApplicantsRepository applicants,
|
IApplicantsRepository applicants,
|
||||||
IUserIdProvider userIdProvider)
|
IUserIdProvider userIdProvider)
|
||||||
{
|
{
|
||||||
|
RuleFor(r => r.PermissionToDestCountry)
|
||||||
|
.NotEmpty()
|
||||||
|
.WithMessage("For transit you must provide permission to destination country")
|
||||||
|
.SetValidator(permissionToDestCountryModelValidator)
|
||||||
|
.When(r => r.VisaCategory is VisaCategory.Transit);
|
||||||
|
|
||||||
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")
|
||||||
@@ -43,11 +49,6 @@ public class VisaApplicationCreateRequestValidator : AbstractValidator<VisaAppli
|
|||||||
RuleForEach(r => r.PastVisas)
|
RuleForEach(r => r.PastVisas)
|
||||||
.SetValidator(pastVisaModelValidator);
|
.SetValidator(pastVisaModelValidator);
|
||||||
|
|
||||||
When(r => r.VisaCategory == VisaCategory.Transit,
|
|
||||||
() =>
|
|
||||||
RuleFor(r => r.PermissionToDestCountry)
|
|
||||||
.SetValidator(permissionToDestCountryModelValidator));
|
|
||||||
|
|
||||||
RuleForEach(r => r.PastVisits)
|
RuleForEach(r => r.PastVisits)
|
||||||
.SetValidator(pastVisitModelValidator);
|
.SetValidator(pastVisitModelValidator);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ public class VisaApplicationCreateRequest
|
|||||||
[Required]
|
[Required]
|
||||||
public PastVisaModel[] PastVisas { get; set; } = null!;
|
public PastVisaModel[] PastVisas { get; set; } = null!;
|
||||||
|
|
||||||
//todo remove attribute
|
|
||||||
[Required]
|
|
||||||
public PermissionToDestCountryModel? PermissionToDestCountry { get; set; }
|
public PermissionToDestCountryModel? PermissionToDestCountry { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ public class UsersController(
|
|||||||
/// <summary> Adds applicant with user account </summary>
|
/// <summary> Adds applicant with user account </summary>
|
||||||
[HttpPost("register")]
|
[HttpPost("register")]
|
||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
[ProducesResponseType(StatusCodes.Status409Conflict)]
|
|
||||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||||
public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken)
|
public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
@@ -40,7 +39,6 @@ public class UsersController(
|
|||||||
///<remarks> Accessible only for admins </remarks>
|
///<remarks> Accessible only for admins </remarks>
|
||||||
[HttpPost("authorities")]
|
[HttpPost("authorities")]
|
||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
[ProducesResponseType(StatusCodes.Status409Conflict)]
|
|
||||||
[ProducesResponseType(StatusCodes.Status403Forbidden)]
|
[ProducesResponseType(StatusCodes.Status403Forbidden)]
|
||||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ 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> CloseApplication(Guid applicationId, CancellationToken cancellationToken)
|
public async Task<IActionResult> CloseApplication(Guid applicationId, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -131,16 +131,6 @@ namespace VisaApiClient
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (status_ == 409)
|
|
||||||
{
|
|
||||||
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
|
||||||
if (objectResponse_.Object == null)
|
|
||||||
{
|
|
||||||
throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
|
|
||||||
}
|
|
||||||
throw new ApiException<ProblemDetails>("Conflict", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (status_ == 400)
|
if (status_ == 400)
|
||||||
{
|
{
|
||||||
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
||||||
@@ -239,16 +229,6 @@ namespace VisaApiClient
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (status_ == 409)
|
|
||||||
{
|
|
||||||
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
|
||||||
if (objectResponse_.Object == null)
|
|
||||||
{
|
|
||||||
throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
|
|
||||||
}
|
|
||||||
throw new ApiException<ProblemDetails>("Conflict", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (status_ == 403)
|
if (status_ == 403)
|
||||||
{
|
{
|
||||||
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
||||||
@@ -1220,6 +1200,16 @@ namespace VisaApiClient
|
|||||||
throw new ApiException<ProblemDetails>("Not Found", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
|
throw new ApiException<ProblemDetails>("Not Found", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
if (status_ == 400)
|
||||||
|
{
|
||||||
|
var objectResponse_ = await ReadObjectResponseAsync<ProblemDetails>(response_, headers_, cancellationToken).ConfigureAwait(false);
|
||||||
|
if (objectResponse_.Object == null)
|
||||||
|
{
|
||||||
|
throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
|
||||||
|
}
|
||||||
|
throw new ApiException<ProblemDetails>("Bad Request", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false);
|
var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false);
|
||||||
throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null);
|
throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null);
|
||||||
@@ -1938,9 +1928,8 @@ namespace VisaApiClient
|
|||||||
[System.ComponentModel.DataAnnotations.Required]
|
[System.ComponentModel.DataAnnotations.Required]
|
||||||
public System.Collections.Generic.ICollection<PastVisaModel> PastVisas { get; set; } = new System.Collections.ObjectModel.Collection<PastVisaModel>();
|
public System.Collections.Generic.ICollection<PastVisaModel> PastVisas { get; set; } = new System.Collections.ObjectModel.Collection<PastVisaModel>();
|
||||||
|
|
||||||
[Newtonsoft.Json.JsonProperty("permissionToDestCountry", Required = Newtonsoft.Json.Required.Always)]
|
[Newtonsoft.Json.JsonProperty("permissionToDestCountry", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
|
||||||
[System.ComponentModel.DataAnnotations.Required]
|
public PermissionToDestCountryModel PermissionToDestCountry { get; set; } = default!;
|
||||||
public PermissionToDestCountryModel PermissionToDestCountry { get; set; } = new PermissionToDestCountryModel();
|
|
||||||
|
|
||||||
[Newtonsoft.Json.JsonProperty("pastVisits", Required = Newtonsoft.Json.Required.Always)]
|
[Newtonsoft.Json.JsonProperty("pastVisits", Required = Newtonsoft.Json.Required.Always)]
|
||||||
[System.ComponentModel.DataAnnotations.Required]
|
[System.ComponentModel.DataAnnotations.Required]
|
||||||
|
|||||||
Reference in New Issue
Block a user