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/UpdateAccountRoute.cs | |
| parent | d76c180c9631df015d37138045c79a46cca350e8 (diff) | |
| download | greatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.tar.xz greatoffice-0725e4f7cf4c6f723264b6d461b91c660d144cb7.zip | |
feat: Apiwork
Diffstat (limited to 'code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs')
| -rw-r--r-- | code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs index 31ff10b..02dc3f1 100644 --- a/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs +++ b/code/api/src/Endpoints/Internal/Account/UpdateAccountRoute.cs @@ -2,50 +2,49 @@ namespace IOL.GreatOffice.Api.Endpoints.Internal.Account; public class UpdateAccountRoute : RouteBaseAsync.WithRequest<UpdatePayload>.WithActionResult { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - /// <inheritdoc /> - public UpdateAccountRoute(AppDbContext context) { - _context = context; - } + public UpdateAccountRoute(MainAppDatabase database) { + _database = database; + } - /// <summary> - /// Update the logged on user's data. - /// </summary> - /// <param name="request"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - [HttpPost("~/_/account/update")] - public override async Task<ActionResult> HandleAsync(UpdatePayload request, CancellationToken cancellationToken = default) { - var user = _context.Users.SingleOrDefault(c => c.Id == LoggedInUser.Id); - if (user == default) { - await HttpContext.SignOutAsync(); - return Unauthorized(); - } + /// <summary> + /// Update the logged on user's data. + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + [HttpPost("~/_/account/update")] + public override async Task<ActionResult> HandleAsync(UpdatePayload request, CancellationToken cancellationToken = default) { + var user = _database.Users.SingleOrDefault(c => c.Id == LoggedInUser.Id); + if (user == default) { + await HttpContext.SignOutAsync(); + return Unauthorized(); + } - if (request.Password.IsNullOrWhiteSpace() && request.Username.IsNullOrWhiteSpace()) { - return BadRequest(new KnownProblemModel("Invalid request", "No data was submitted")); - } + if (request.Password.IsNullOrWhiteSpace() && request.Username.IsNullOrWhiteSpace()) { + return BadRequest(new KnownProblemModel("Invalid request", "No data was submitted")); + } - if (request.Password.HasValue() && request.Password.Length < 6) { - return BadRequest(new KnownProblemModel("Invalid request", - "The new password must contain at least 6 characters")); - } + if (request.Password.HasValue() && request.Password.Length < 6) { + return BadRequest(new KnownProblemModel("Invalid request", + "The new password must contain at least 6 characters")); + } - if (request.Password.HasValue()) { - user.HashAndSetPassword(request.Password); - } + if (request.Password.HasValue()) { + user.HashAndSetPassword(request.Password); + } - if (request.Username.HasValue() && !request.Username.IsValidEmailAddress()) { - return BadRequest(new KnownProblemModel("Invalid request", - "The new username does not look like a valid email address")); - } + if (request.Username.HasValue() && !request.Username.IsValidEmailAddress()) { + return BadRequest(new KnownProblemModel("Invalid request", + "The new username does not look like a valid email address")); + } - if (request.Username.HasValue()) { - user.Username = request.Username.Trim(); - } + if (request.Username.HasValue()) { + user.Username = request.Username.Trim(); + } - await _context.SaveChangesAsync(cancellationToken); - return Ok(); - } -} + await _database.SaveChangesAsync(cancellationToken); + return Ok(); + } +}
\ No newline at end of file |
