summaryrefslogtreecommitdiff
path: root/Controllers/AdministratorsController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers/AdministratorsController.cs')
-rw-r--r--Controllers/AdministratorsController.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Controllers/AdministratorsController.cs b/Controllers/AdministratorsController.cs
new file mode 100644
index 0000000..66f805c
--- /dev/null
+++ b/Controllers/AdministratorsController.cs
@@ -0,0 +1,37 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Mvc;
+using BackendPIA.Forms;
+using BackendPIA.Models;
+using BackendPIA.Services;
+using BackendPIA.Errors;
+using BackendPIA.Logics;
+
+namespace BackendPIA.Controllers {
+ [Route("api/admin")]
+ [ApiController]
+ public class AdministratorsController : ControllerBase {
+ private readonly IUserAccountService _user_account_service;
+ private readonly IMapper _mapper;
+ private readonly ITokenGenerator _token_generator;
+ private readonly UserManager<UserAccount> _manager;
+
+ public AdministratorsController(UserManager<UserAccount> manager, IUserAccountService user_account_service, ITokenGenerator token_generator, IMapper mapper) {
+ _user_account_service = user_account_service;
+ _mapper = mapper;
+ _manager = manager;
+ _token_generator = token_generator;
+ }
+
+ [HttpPost("signup")]
+ public async Task<ActionResult<AuthenticationToken>> Create(UserAccountForm form) {
+ CreateAdministratorLogic logic = new CreateAdministratorLogic(_token_generator, _manager, form, _mapper, _user_account_service);
+ var result = await logic.Call();
+
+ if(result)
+ return Ok(logic.Token);
+
+ return StatusCode(422, logic.Errors);
+ }
+ }
+} \ No newline at end of file