summaryrefslogtreecommitdiff
path: root/Controllers/UserAccountSessionsController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers/UserAccountSessionsController.cs')
-rw-r--r--Controllers/UserAccountSessionsController.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/Controllers/UserAccountSessionsController.cs b/Controllers/UserAccountSessionsController.cs
new file mode 100644
index 0000000..1309c8e
--- /dev/null
+++ b/Controllers/UserAccountSessionsController.cs
@@ -0,0 +1,33 @@
+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/")]
+ [ApiController]
+ public class AdministratorSessionsController : ControllerBase {
+ private readonly ITokenGenerator _token_generator;
+ private readonly UserManager<UserAccount> _manager;
+
+ public AdministratorSessionsController(ITokenGenerator token_generator, UserManager<UserAccount> manager) {
+ _token_generator = token_generator;
+ _manager = manager;
+ }
+
+ [HttpPost("login")]
+ public async Task<ActionResult<AuthenticationToken>> Create(UserAccountLoginForm form) {
+ CreateUserAccountSessionLogic logic = new CreateUserAccountSessionLogic(_token_generator, _manager, form);
+ var result = await logic.Call();
+
+ if(result)
+ return Ok(logic.Token);
+
+ return StatusCode(401, new InvalidLoginError(401, "Check your credentials"));
+ }
+ }
+} \ No newline at end of file