Registration and actions for approving authorities

This commit is contained in:
2024-08-19 23:12:01 +03:00
parent 0afe775d85
commit 8c58574b5a
19 changed files with 86 additions and 91 deletions

View File

@@ -1,30 +0,0 @@
using ApplicationLayer.Services.Locations.RequestHandlers.AdminRequests;
using ApplicationLayer.Services.Locations.Requests;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SchengenVisaApi.Common;
namespace SchengenVisaApi.Controllers
{
[ApiController]
[Route("admin")]
[Authorize(policy: PolicyConstants.AdminPolicy)]
public class AdminController(IEditLocationsRequestsHandler requestsHandler) : ControllerBase
{
[HttpPost]
[Route("country")]
public async Task<IActionResult> AddCountry(AddCountryRequest request, CancellationToken cancellationToken)
{
await requestsHandler.AddCountryAsync(request, cancellationToken);
return Ok();
}
[HttpPost]
[Route("authorities")]
public async Task<IActionResult> AddAuthority(AddCountryRequest request, CancellationToken cancellationToken)
{
await requestsHandler.AddCountryAsync(request, cancellationToken);
return Ok();
}
}
}

View File

@@ -1,5 +1,8 @@
using ApplicationLayer.Services.Locations.RequestHandlers.ApplicantRequests;
using ApplicationLayer.Services.Locations.RequestHandlers;
using ApplicationLayer.Services.Locations.Requests;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SchengenVisaApi.Common;
namespace SchengenVisaApi.Controllers
{
@@ -12,5 +15,14 @@ namespace SchengenVisaApi.Controllers
{
return Ok(await requestsHandler.HandleGetRequestAsync(cancellationToken));
}
[HttpPost]
[Route("country")]
[Authorize(policy: PolicyConstants.AdminPolicy)]
public async Task<IActionResult> AddCountry(AddCountryRequest request, CancellationToken cancellationToken)
{
await requestsHandler.AddCountryAsync(request, cancellationToken);
return Ok();
}
}
}

View File

@@ -1,7 +1,9 @@
using ApplicationLayer.Services.AuthServices.LoginService;
using ApplicationLayer.Services.AuthServices.RegisterService;
using ApplicationLayer.Services.AuthServices.Requests;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SchengenVisaApi.Common;
namespace SchengenVisaApi.Controllers
{
@@ -10,12 +12,22 @@ namespace SchengenVisaApi.Controllers
public class UsersController(IRegisterService registerService, ILoginService loginService) : ControllerBase
{
[HttpPost]
[Route("applicant")]
public async Task<IActionResult> Register(RegisterApplicantRequest request, CancellationToken cancellationToken)
{
await registerService.Register(request, cancellationToken);
return Created();
}
[HttpPost]
[Authorize(policy: PolicyConstants.AdminPolicy)]
[Route("authority")]
public async Task<IActionResult> RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken)
{
await registerService.RegisterAuthority(request, cancellationToken);
return Created();
}
[HttpGet]
public async Task<IActionResult> Login(string email, string password, CancellationToken cancellationToken)
{

View File

@@ -9,11 +9,10 @@ namespace SchengenVisaApi.Controllers;
[ApiController]
[Route("[controller]")]
[Authorize(policy: PolicyConstants.ApplicantPolicy)]
public class VisaApplicationController(IVisaApplicationRequestsHandler visaApplicationRequestsHandler) : ControllerBase
{
//TODO remove
[HttpGet]
[Authorize(policy: PolicyConstants.ApprovingAuthorityPolicy)]
public async Task<IActionResult> Get(CancellationToken cancellationToken)
{
var result = await visaApplicationRequestsHandler.Get(cancellationToken);
@@ -21,6 +20,7 @@ public class VisaApplicationController(IVisaApplicationRequestsHandler visaAppli
}
[HttpPost]
[Authorize(policy: PolicyConstants.ApplicantPolicy)]
public void Create(VisaApplicationCreateRequest request, CancellationToken cancellationToken)
{
var userId = Guid.Parse(HttpContext.User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value);

View File

@@ -1,6 +1,6 @@
using ApplicationLayer.GeneralExceptions;
using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.Services.Locations.RequestHandlers.AdminRequests.Exceptions;
using ApplicationLayer.Services.Locations.RequestHandlers.Exceptions;
using Domains;
using Infrastructure.Database.GeneralExceptions;
using Microsoft.AspNetCore.Mvc;