diff options
| author | ivar <i@oiee.no> | 2024-03-19 01:02:22 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2024-03-19 01:02:22 +0100 |
| commit | 5f604b3052dab1d51dc130df2470bf330b283ec6 (patch) | |
| tree | ae00e1fe4542850467555b4e3af41964ba8d878b /code/api/Endpoints/Account/CreateEndpoint.cs | |
| parent | 63cf177e8cf22e349534664d59a6926f8b36863d (diff) | |
| download | storage-5f604b3052dab1d51dc130df2470bf330b283ec6.tar.xz storage-5f604b3052dab1d51dc130df2470bf330b283ec6.zip | |
Max lenghts on db schema
Use latest temporal from cdn
Implement majority of translation functionality
Major refinements/bugs
Diffstat (limited to 'code/api/Endpoints/Account/CreateEndpoint.cs')
| -rw-r--r-- | code/api/Endpoints/Account/CreateEndpoint.cs | 84 |
1 files changed, 37 insertions, 47 deletions
diff --git a/code/api/Endpoints/Account/CreateEndpoint.cs b/code/api/Endpoints/Account/CreateEndpoint.cs index 4cea8f1..59d954c 100644 --- a/code/api/Endpoints/Account/CreateEndpoint.cs +++ b/code/api/Endpoints/Account/CreateEndpoint.cs @@ -1,52 +1,42 @@ -namespace I2R.Storage.Api.Endpoints.Account; +namespace Quality.Storage.Api.Endpoints.Account; -public class CreateEndpoint : EndpointBase +public class CreateEndpoint(AppDatabase database, UserService userService, IStringLocalizer<SharedResources> localizer) : EndpointBase { - private readonly AppDatabase _database; - private readonly UserService _userService; - private readonly IStringLocalizer<SharedResources> _localizer; + public new class Request + { + public string Username { get; set; } + public string Password { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + } - public CreateEndpoint(AppDatabase database, UserService userService, IStringLocalizer<SharedResources> localizer) { - _database = database; - _userService = userService; - _localizer = localizer; - } + public new class Response + { + public Guid Id { get; set; } + public string Username { get; set; } + public UserRole Role { get; set; } + } - public new class Request - { - public string Username { get; set; } - public string Password { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - } + [AllowAnonymous] + [HttpPost("~/account/create")] + public ActionResult Handle([FromBody] Request request) { + if (!userService.CanCreateAccount(request.Username)) { + return BadRequest(localizer["That username is already taken"]); + } - public new class Response - { - public Guid Id { get; set; } - public string Username { get; set; } - public EUserRole Role { get; set; } - } - - [AllowAnonymous] - [HttpPost("~/account/create")] - public ActionResult Handle([FromBody] Request request) { - if (!_userService.CanCreateAccount(request.Username)) { - return BadRequest(_localizer["That username is already taken"]); - } - - var user = new User() { - Username = request.Username, - Password = PasswordHelper.HashPassword(request.Password), - LastName = request.LastName, - FirstName = request.FirstName, - Role = EUserRole.LEAST_PRIVILEGED, - }; - _database.Users.Add(user); - _database.SaveChanges(); - return Ok(new Response { - Id = user.Id, - Username = user.Username, - Role = user.Role - }); - } -}
\ No newline at end of file + var user = new User { + Username = request.Username, + Password = PasswordHelper.HashPassword(request.Password), + LastName = request.LastName, + FirstName = request.FirstName, + Role = UserRole.LEAST_PRIVILEGED, + }; + database.Users.Add(user); + database.SaveChanges(); + return Ok(new Response { + Id = user.Id, + Username = user.Username, + Role = user.Role + }); + } +} |
