From cc6d33511a6a4c43630a36b13d03db57f432520c Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 3 May 2021 00:34:30 +0800 Subject: refactor: ... --- .../Timeline/Controllers/ActionResultControllerExtensions.cs | 5 +++++ BackEnd/Timeline/Controllers/TimelineController.cs | 2 +- BackEnd/Timeline/Controllers/TimelinePostController.cs | 2 +- BackEnd/Timeline/Controllers/UserController.cs | 8 ++------ BackEnd/Timeline/Services/User/IUserDeleteService.cs | 4 ++-- BackEnd/Timeline/Services/User/UserDeleteService.cs | 12 +++++++----- 6 files changed, 18 insertions(+), 15 deletions(-) (limited to 'BackEnd/Timeline') diff --git a/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs b/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs index a3da73fa..a7a5486c 100644 --- a/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs +++ b/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs @@ -16,6 +16,11 @@ namespace Timeline.Controllers return controller.StatusCode(StatusCodes.Status403Forbidden, new CommonResponse(ErrorCodes.Common.Forbid, message ?? Resource.MessageForbid)); } + public static ObjectResult Delete(this ControllerBase controller, bool delete = true) + { + return controller.StatusCode(StatusCodes.Status200OK, CommonDeleteResponse.Create(delete)); + } + public static BadRequestObjectResult BadRequestWithCommonResponse(this ControllerBase controller, int code, string message) { return controller.BadRequest(new CommonResponse(code, message)); diff --git a/BackEnd/Timeline/Controllers/TimelineController.cs b/BackEnd/Timeline/Controllers/TimelineController.cs index f04982dc..7347f135 100644 --- a/BackEnd/Timeline/Controllers/TimelineController.cs +++ b/BackEnd/Timeline/Controllers/TimelineController.cs @@ -243,7 +243,7 @@ namespace Timeline.Controllers } await _service.DeleteTimelineAsync(timelineId); - return Ok(); + return this.Delete(); } } } diff --git a/BackEnd/Timeline/Controllers/TimelinePostController.cs b/BackEnd/Timeline/Controllers/TimelinePostController.cs index 9f69b59b..09e7e624 100644 --- a/BackEnd/Timeline/Controllers/TimelinePostController.cs +++ b/BackEnd/Timeline/Controllers/TimelinePostController.cs @@ -266,7 +266,7 @@ namespace Timeline.Controllers await _postService.DeletePostAsync(timelineId, post); - return Ok(); + return this.Delete(); } } } diff --git a/BackEnd/Timeline/Controllers/UserController.cs b/BackEnd/Timeline/Controllers/UserController.cs index ec732caa..47d2ee41 100644 --- a/BackEnd/Timeline/Controllers/UserController.cs +++ b/BackEnd/Timeline/Controllers/UserController.cs @@ -129,11 +129,8 @@ namespace Timeline.Controllers { try { - var delete = await _userDeleteService.DeleteUserAsync(username); - if (delete) - return Ok(CommonDeleteResponse.Delete()); - else - return Ok(CommonDeleteResponse.NotExist()); + await _userDeleteService.DeleteUserAsync(username); + return this.Delete(); } catch (InvalidOperationOnRootUserException) { @@ -187,7 +184,6 @@ namespace Timeline.Controllers [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task DeleteUserPermission([FromRoute][Username] string username, [FromRoute] UserPermission permission) { try diff --git a/BackEnd/Timeline/Services/User/IUserDeleteService.cs b/BackEnd/Timeline/Services/User/IUserDeleteService.cs index 992a565c..3b872942 100644 --- a/BackEnd/Timeline/Services/User/IUserDeleteService.cs +++ b/BackEnd/Timeline/Services/User/IUserDeleteService.cs @@ -9,10 +9,10 @@ namespace Timeline.Services.User /// Delete a user of given username. /// /// Username of the user to delete. Can't be null. - /// True if user is deleted, false if user not exist. /// Thrown if is null. /// Thrown when is of bad format. + /// Thrown when the user does not exist. /// Thrown when deleting root user. - Task DeleteUserAsync(string username); + Task DeleteUserAsync(string username); } } diff --git a/BackEnd/Timeline/Services/User/UserDeleteService.cs b/BackEnd/Timeline/Services/User/UserDeleteService.cs index 3e3e29e2..c21042df 100644 --- a/BackEnd/Timeline/Services/User/UserDeleteService.cs +++ b/BackEnd/Timeline/Services/User/UserDeleteService.cs @@ -1,6 +1,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using System; +using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Threading.Tasks; @@ -27,7 +28,7 @@ namespace Timeline.Services.User _timelinePostService = timelinePostService; } - public async Task DeleteUserAsync(string username) + public async Task DeleteUserAsync(string username) { if (username == null) throw new ArgumentNullException(nameof(username)); @@ -38,8 +39,11 @@ namespace Timeline.Services.User } var user = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync(); - if (user == null) - return false; + if (user is null) + throw new EntityNotExistException(EntityTypes.User, new Dictionary + { + ["username"] = username + }); if (user.Id == 1) throw new InvalidOperationOnRootUserException(Resource.ExceptionDeleteRootUser); @@ -50,8 +54,6 @@ namespace Timeline.Services.User await _databaseContext.SaveChangesAsync(); _logger.LogWarning(Resource.LogDeleteUser, user.Username, user.Id); - - return true; } } -- cgit v1.2.3