summaryrefslogtreecommitdiff
path: root/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers')
-rw-r--r--Controllers/AdministratorSessionsController.cs6
-rw-r--r--Controllers/AdministratorsController.cs37
2 files changed, 40 insertions, 3 deletions
diff --git a/Controllers/AdministratorSessionsController.cs b/Controllers/AdministratorSessionsController.cs
index 2ecf5e0..87f3034 100644
--- a/Controllers/AdministratorSessionsController.cs
+++ b/Controllers/AdministratorSessionsController.cs
@@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using BackendPIA.Forms;
using BackendPIA.Models;
@@ -10,12 +12,10 @@ namespace BackendPIA.Controllers {
[Route("api/admin")]
[ApiController]
public class AdministratorSessionsController : ControllerBase {
- private readonly ApplicationDbContext _context;
private readonly ITokenGenerator _token_generator;
private readonly UserManager<UserAccount> _manager;
- public AdministratorSessionsController(ApplicationDbContext context, ITokenGenerator token_generator, UserManager<UserAccount> manager) {
- _context = context;
+ public AdministratorSessionsController(ITokenGenerator token_generator, UserManager<UserAccount> manager) {
_token_generator = token_generator;
_manager = manager;
}
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