From 5a64d52df66264c9f752b03f38a0bc40ddf25931 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 11 Dec 2020 15:23:15 +0200 Subject: Made UserController (and UserService) return IActionResult, rather than HttpStatusCode --- API/Controllers/UserController.cs | 8 ++++---- API/Service/UserService.cs | 38 ++++++++++++++------------------------ 2 files changed, 18 insertions(+), 28 deletions(-) (limited to 'API') 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 Create([FromBody] UserDTO userDTO) + public async Task Create([FromBody] UserDTO userDTO) { return await this._service.CreateUser(userDTO); } //Read [HttpGet] - public async Task GetById(int id) + public async Task GetById(int id) { return await this._service.GetUserById(id); } //Update [HttpPut] - public async Task Update(int id, [FromBody] UserDTO userDTO) + public async Task Update(int id, [FromBody] UserDTO userDTO) { return await this._service.UpdateUser(id, userDTO); } //Delete [HttpDelete] - public async Task Delete(int id) + public async Task 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 CreateUser(UserDTO userDTO) + public async Task 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(userDTO); await this._userDbRepository.AddAsync(user); - return HttpStatusCode.Created; + return new OkObjectResult("User created."); } - public async Task GetUserById(int id) + public async Task 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 UpdateUser(int id, UserDTO userDTO) + public async Task 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(userDTO); await this._userDbRepository.EditAsync(id, user); - return HttpStatusCode.OK; + return new OkObjectResult("User updated."); } - public async Task DeleteUser(int id) + public async Task 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."); } } } -- cgit v1.2.3