diff options
Diffstat (limited to 'server/src/Endpoints/Internal/Account/UpdateAccountRoute.cs')
| -rw-r--r-- | server/src/Endpoints/Internal/Account/UpdateAccountRoute.cs | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/server/src/Endpoints/Internal/Account/UpdateAccountRoute.cs b/server/src/Endpoints/Internal/Account/UpdateAccountRoute.cs deleted file mode 100644 index a997dcb..0000000 --- a/server/src/Endpoints/Internal/Account/UpdateAccountRoute.cs +++ /dev/null @@ -1,51 +0,0 @@ -namespace IOL.GreatOffice.Api.Endpoints.Internal.Account; - -public class UpdateAccountRoute : RouteBaseAsync.WithRequest<UpdatePayload>.WithActionResult -{ - private readonly AppDbContext _context; - - /// <inheritdoc /> - public UpdateAccountRoute(AppDbContext context) { - _context = context; - } - - /// <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(); - } - - if (request.Password.IsNullOrWhiteSpace() && request.Username.IsNullOrWhiteSpace()) { - return BadRequest(new ErrorResult("Invalid request", "No data was submitted")); - } - - if (request.Password.HasValue() && request.Password.Length < 6) { - return BadRequest(new ErrorResult("Invalid request", - "The new password must contain at least 6 characters")); - } - - if (request.Password.HasValue()) { - user.HashAndSetPassword(request.Password); - } - - if (request.Username.HasValue() && !request.Username.IsValidEmailAddress()) { - return BadRequest(new ErrorResult("Invalid request", - "The new username does not look like a valid email address")); - } - - if (request.Username.HasValue()) { - user.Username = request.Username.Trim(); - } - - await _context.SaveChangesAsync(cancellationToken); - return Ok(); - } -} |
