diff options
Diffstat (limited to 'API')
| -rw-r--r-- | API/Controllers/UserController.cs | 8 | ||||
| -rw-r--r-- | API/Service/UserService.cs | 38 |
2 files changed, 18 insertions, 28 deletions
diff --git a/API/Controllers/UserController.cs b/API/Controllers/UserController.cs index 3f18dbe..7e75e3e 100644 --- a/API/Controllers/UserController.cs +++ b/API/Controllers/UserController.cs @@ -23,28 +23,28 @@ namespace API.Controllers //Create [HttpPost] - public async Task<HttpStatusCode> Create([FromBody] UserDTO userDTO) + public async Task<IActionResult> Create([FromBody] UserDTO userDTO) { return await this._service.CreateUser(userDTO); } //Read [HttpGet] - public async Task<User> GetById(int id) + public async Task<IActionResult> GetById(int id) { return await this._service.GetUserById(id); } //Update [HttpPut] - public async Task<HttpStatusCode> Update(int id, [FromBody] UserDTO userDTO) + public async Task<IActionResult> Update(int id, [FromBody] UserDTO userDTO) { return await this._service.UpdateUser(id, userDTO); } //Delete [HttpDelete] - public async Task<HttpStatusCode> Delete(int id) + public async Task<IActionResult> Delete(int id) { return await this._service.DeleteUser(id); } diff --git a/API/Service/UserService.cs b/API/Service/UserService.cs index a03de45..fec6821 100644 --- a/API/Service/UserService.cs +++ b/API/Service/UserService.cs @@ -10,6 +10,7 @@ using System.Net.Http; using Npgsql.EntityFrameworkCore.PostgreSQL.Query.ExpressionTranslators.Internal; using System; using Microsoft.AspNetCore.Mvc.Routing; +using Microsoft.AspNetCore.Mvc; namespace API.Service { @@ -24,60 +25,49 @@ namespace API.Service this._userMapper = mapper; } - public async Task<HttpStatusCode> CreateUser(UserDTO userDTO) + public async Task<IActionResult> CreateUser(UserDTO userDTO) { if (this._userDbRepository.DoesUsernameExist(userDTO.UserName)) - ThrowHttpRequestException(HttpStatusCode.BadRequest, "Username already exists!"); + return new BadRequestObjectResult("Username already exists!"); User user = this._userMapper.Map<User>(userDTO); await this._userDbRepository.AddAsync(user); - return HttpStatusCode.Created; + return new OkObjectResult("User created."); } - public async Task<User> GetUserById(int id) + public async Task<IActionResult> GetUserById(int id) { User user = await this._userDbRepository.FindByIdAsync(id); if (user == null) - ThrowHttpRequestException(HttpStatusCode.NotFound); + return new NotFoundObjectResult("User does not exist!"); - return user; + return new OkObjectResult(JsonConvert.SerializeObject(user)); } - public async Task<HttpStatusCode> UpdateUser(int id, UserDTO userDTO) + public async Task<IActionResult> UpdateUser(int id, UserDTO userDTO) { if (!this._userDbRepository.DoesUserExist(id)) - ThrowHttpRequestException(HttpStatusCode.NotFound); + return new NotFoundObjectResult("User does not exist!"); if (this._userDbRepository.DoesUsernameExist(userDTO.UserName)) - ThrowHttpRequestException(HttpStatusCode.Forbidden); + return new BadRequestObjectResult("Username already exists!"); User user = this._userMapper.Map<User>(userDTO); await this._userDbRepository.EditAsync(id, user); - return HttpStatusCode.OK; + return new OkObjectResult("User updated."); } - public async Task<HttpStatusCode> DeleteUser(int id) + public async Task<IActionResult> DeleteUser(int id) { if (!this._userDbRepository.DoesUserExist(id)) - return HttpStatusCode.Forbidden; + return new NotFoundObjectResult("User does not exist!"); await this._userDbRepository.DeleteAsync(id); - return HttpStatusCode.OK; - } - - private void ThrowHttpRequestException(HttpStatusCode statusCode, string errorMessage = "") - { - HttpResponseMessage message = new() - { - StatusCode = statusCode, - Content = new StringContent(errorMessage) - }; - - throw new HttpResponseException(message); + return new OkObjectResult("User deleted successfully."); } } } |
