summaryrefslogtreecommitdiff
path: root/Controllers/UserAccountsController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers/UserAccountsController.cs')
-rw-r--r--Controllers/UserAccountsController.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/Controllers/UserAccountsController.cs b/Controllers/UserAccountsController.cs
new file mode 100644
index 0000000..51c2481
--- /dev/null
+++ b/Controllers/UserAccountsController.cs
@@ -0,0 +1,39 @@
+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 UserAccountsController : ControllerBase {
+ private readonly IUserAccountService _user_account_service;
+ private readonly IMapper _mapper;
+ private readonly ITokenGenerator _token_generator;
+ private readonly UserManager<UserAccount> _manager;
+
+ public UserAccountsController(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) {
+ CreateUserAccountLogic logic = new CreateUserAccountLogic(_token_generator, _manager, form, _mapper, _user_account_service, "Regular");
+ var result = await logic.Call();
+
+ if(result)
+ return Ok(logic.Token);
+
+ return StatusCode(422, logic.Errors);
+ }
+ }
+} \ No newline at end of file