diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-10-30 16:40:03 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-10-30 16:40:03 +0100 |
| commit | 0725e4f7cf4c6f723264b6d461b91c660d144cb7 (patch) | |
| tree | aae5876b5760c80679161d918c34d753ec0e2582 /code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs | |
| parent | d76c180c9631df015d37138045c79a46cca350e8 (diff) | |
| download | greatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.tar.xz greatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.zip | |
feat: Apiwork
Diffstat (limited to 'code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs')
| -rw-r--r-- | code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs index 0f4a383..f34056d 100644 --- a/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs +++ b/code/api/src/Endpoints/Internal/Account/CreateAccountRoute.cs @@ -1,44 +1,42 @@ namespace IOL.GreatOffice.Api.Endpoints.Internal.Account; -/// <inheritdoc /> public class CreateAccountRoute : RouteBaseAsync.WithRequest<CreateAccountPayload>.WithActionResult { - private readonly AppDbContext _context; - private readonly UserService _userService; + private readonly MainAppDatabase _database; + private readonly UserService _userService; - /// <inheritdoc /> - public CreateAccountRoute(UserService userService, AppDbContext context) { - _userService = userService; - _context = context; - } + public CreateAccountRoute(UserService userService, MainAppDatabase database) { + _userService = userService; + _database = database; + } - /// <summary> - /// Create a new user account. - /// </summary> - /// <param name="request"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - [AllowAnonymous] - [HttpPost("~/_/account/create")] - public override async Task<ActionResult> HandleAsync(CreateAccountPayload request, CancellationToken cancellationToken = default) { - if (request.Username.IsValidEmailAddress() == false) { - return BadRequest(new KnownProblemModel("Invalid form", request.Username + " does not look like a valid email")); - } + /// <summary> + /// Create a new user account. + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + [AllowAnonymous] + [HttpPost("~/_/account/create")] + public override async Task<ActionResult> HandleAsync(CreateAccountPayload request, CancellationToken cancellationToken = default) { + if (request.Username.IsValidEmailAddress() == false) { + return BadRequest(new KnownProblemModel("Invalid form", request.Username + " does not look like a valid email")); + } - if (request.Password.Length < 6) { - return BadRequest(new KnownProblemModel("Invalid form", "The password requires 6 or more characters.")); - } + if (request.Password.Length < 6) { + return BadRequest(new KnownProblemModel("Invalid form", "The password requires 6 or more characters.")); + } - var username = request.Username.Trim(); - if (_context.Users.Any(c => c.Username == username)) { - return BadRequest(new KnownProblemModel("Username is not available", "There is already a user registered with email: " + username)); - } + var username = request.Username.Trim(); + if (_database.Users.Any(c => c.Username == username)) { + return BadRequest(new KnownProblemModel("Username is not available", "There is already a user registered with email: " + username)); + } - var user = new User(username); - user.HashAndSetPassword(request.Password); - _context.Users.Add(user); - await _context.SaveChangesAsync(cancellationToken); - await _userService.LogInUser(HttpContext, user); - return Ok(); - } -} + var user = new User(username); + user.HashAndSetPassword(request.Password); + _database.Users.Add(user); + await _database.SaveChangesAsync(cancellationToken); + await _userService.LogInUser(HttpContext, user); + return Ok(); + } +}
\ No newline at end of file |
