From a672e10faad434899d81ef9d0d0d5adbbc7841da Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 30 Apr 2021 16:52:55 +0800 Subject: refactor: ... --- .../ActionResultControllerExtensions.cs | 13 ++++ .../Controllers/BookmarkTimelineController.cs | 30 ++-------- .../Controllers/HighlightTimelineController.cs | 30 ++-------- BackEnd/Timeline/Controllers/Resource.Designer.cs | 9 +++ BackEnd/Timeline/Controllers/Resource.resx | 3 + BackEnd/Timeline/Controllers/TimelineController.cs | 70 ++++++---------------- .../Timeline/Controllers/TimelinePostController.cs | 3 - BackEnd/Timeline/Controllers/TokenController.cs | 4 +- .../Timeline/Controllers/UserAvatarController.cs | 32 ++-------- BackEnd/Timeline/Controllers/UserController.cs | 53 ++++------------ 10 files changed, 70 insertions(+), 177 deletions(-) create mode 100644 BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs (limited to 'BackEnd/Timeline/Controllers') diff --git a/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs b/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs new file mode 100644 index 00000000..76a8b7ae --- /dev/null +++ b/BackEnd/Timeline/Controllers/ActionResultControllerExtensions.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Mvc; +using Timeline.Models.Http; + +namespace Timeline.Controllers +{ + public static class ActionResultControllerExtensions + { + public static BadRequestObjectResult BadRequestWithCodeAndMessage(this ControllerBase controller, int code, string message) + { + return controller.BadRequest(new CommonResponse(code, message)); + } + } +} diff --git a/BackEnd/Timeline/Controllers/BookmarkTimelineController.cs b/BackEnd/Timeline/Controllers/BookmarkTimelineController.cs index cbc96fc6..94cb0f3e 100644 --- a/BackEnd/Timeline/Controllers/BookmarkTimelineController.cs +++ b/BackEnd/Timeline/Controllers/BookmarkTimelineController.cs @@ -60,16 +60,9 @@ namespace Timeline.Controllers [ProducesResponseType(401)] public async Task> Put([GeneralTimelineName] string timeline) { - try - { - var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); - var create = await _service.AddBookmarkAsync(this.GetUserId(), timelineId); - return CommonPutResponse.Create(create); - } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } + var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); + var create = await _service.AddBookmarkAsync(this.GetUserId(), timelineId); + return CommonPutResponse.Create(create); } /// @@ -83,16 +76,9 @@ namespace Timeline.Controllers [ProducesResponseType(401)] public async Task> Delete([GeneralTimelineName] string timeline) { - try - { - var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); - var delete = await _service.RemoveBookmarkAsync(this.GetUserId(), timelineId); - return CommonDeleteResponse.Create(delete); - } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } + var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); + var delete = await _service.RemoveBookmarkAsync(this.GetUserId(), timelineId); + return CommonDeleteResponse.Create(delete); } /// @@ -112,10 +98,6 @@ namespace Timeline.Controllers await _service.MoveBookmarkAsync(this.GetUserId(), timelineId, request.NewPosition!.Value); return Ok(); } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } catch (InvalidBookmarkException) { return BadRequest(new CommonResponse(ErrorCodes.BookmarkTimelineController.NonBookmark, "You can't move a non-bookmark timeline.")); diff --git a/BackEnd/Timeline/Controllers/HighlightTimelineController.cs b/BackEnd/Timeline/Controllers/HighlightTimelineController.cs index ffaa50c1..e73bc7a9 100644 --- a/BackEnd/Timeline/Controllers/HighlightTimelineController.cs +++ b/BackEnd/Timeline/Controllers/HighlightTimelineController.cs @@ -60,16 +60,9 @@ namespace Timeline.Controllers [ProducesResponseType(403)] public async Task> Put([GeneralTimelineName] string timeline) { - try - { - var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); - var create = await _service.AddHighlightTimelineAsync(timelineId, this.GetUserId()); - return CommonPutResponse.Create(create); - } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } + var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); + var create = await _service.AddHighlightTimelineAsync(timelineId, this.GetUserId()); + return CommonPutResponse.Create(create); } /// @@ -84,16 +77,9 @@ namespace Timeline.Controllers [ProducesResponseType(403)] public async Task> Delete([GeneralTimelineName] string timeline) { - try - { - var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); - var delete = await _service.RemoveHighlightTimelineAsync(timelineId, this.GetUserId()); - return CommonDeleteResponse.Create(delete); - } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } + var timelineId = await _timelineService.GetTimelineIdByNameAsync(timeline); + var delete = await _service.RemoveHighlightTimelineAsync(timelineId, this.GetUserId()); + return CommonDeleteResponse.Create(delete); } /// @@ -113,10 +99,6 @@ namespace Timeline.Controllers await _service.MoveHighlightTimelineAsync(timelineId, body.NewPosition!.Value); return Ok(); } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } catch (InvalidHighlightTimelineException) { return BadRequest(new CommonResponse(ErrorCodes.HighlightTimelineController.NonHighlight, "Can't move a non-highlight timeline.")); diff --git a/BackEnd/Timeline/Controllers/Resource.Designer.cs b/BackEnd/Timeline/Controllers/Resource.Designer.cs index 6279a055..c2dfd3cd 100644 --- a/BackEnd/Timeline/Controllers/Resource.Designer.cs +++ b/BackEnd/Timeline/Controllers/Resource.Designer.cs @@ -68,5 +68,14 @@ namespace Timeline.Controllers { return ResourceManager.GetString("ExceptionNoUserId", resourceCulture); } } + + /// + /// Looks up a localized string similar to A user with given username already exists.. + /// + internal static string MessageUsernameConflict { + get { + return ResourceManager.GetString("MessageUsernameConflict", resourceCulture); + } + } } } diff --git a/BackEnd/Timeline/Controllers/Resource.resx b/BackEnd/Timeline/Controllers/Resource.resx index ec45a5c9..8939dfd8 100644 --- a/BackEnd/Timeline/Controllers/Resource.resx +++ b/BackEnd/Timeline/Controllers/Resource.resx @@ -120,4 +120,7 @@ Can't get user id. + + A user with given username already exists. + \ No newline at end of file diff --git a/BackEnd/Timeline/Controllers/TimelineController.cs b/BackEnd/Timeline/Controllers/TimelineController.cs index 3fd0f2ac..bb770ea0 100644 --- a/BackEnd/Timeline/Controllers/TimelineController.cs +++ b/BackEnd/Timeline/Controllers/TimelineController.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; using Timeline.Entities; -using Timeline.Filters; using Timeline.Models; using Timeline.Models.Http; using Timeline.Models.Validation; @@ -21,7 +20,6 @@ namespace Timeline.Controllers /// [ApiController] [Route("timelines")] - [CatchTimelineNotExistException] [ProducesErrorResponseType(typeof(CommonResponse))] public class TimelineController : Controller { @@ -100,7 +98,7 @@ namespace Timeline.Controllers relationship = new TimelineUserRelationship(relationType, relatedUserId); } - catch (UserNotExistException) + catch (EntityNotExistException) { return BadRequest(ErrorResponse.TimelineController.QueryRelateNotExist()); } @@ -148,17 +146,10 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - try - { - await _service.ChangePropertyAsync(timelineId, _mapper.AutoMapperMap(body)); - var t = await _service.GetTimelineAsync(timelineId); - var result = await Map(t); - return result; - } - catch (EntityAlreadyExistException) - { - return BadRequest(ErrorResponse.TimelineController.NameConflict()); - } + await _service.ChangePropertyAsync(timelineId, _mapper.AutoMapperMap(body)); + var t = await _service.GetTimelineAsync(timelineId); + var result = await Map(t); + return result; } /// @@ -181,16 +172,9 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - try - { - var userId = await _userService.GetUserIdByUsernameAsync(member); - var create = await _service.AddMemberAsync(timelineId, userId); - return Ok(CommonPutResponse.Create(create)); - } - catch (UserNotExistException) - { - return BadRequest(ErrorResponse.UserCommon.NotExist()); - } + var userId = await _userService.GetUserIdByUsernameAsync(member); + var create = await _service.AddMemberAsync(timelineId, userId); + return Ok(CommonPutResponse.Create(create)); } /// @@ -213,16 +197,10 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - try - { - var userId = await _userService.GetUserIdByUsernameAsync(member); - var delete = await _service.RemoveMemberAsync(timelineId, userId); - return Ok(CommonDeleteResponse.Create(delete)); - } - catch (UserNotExistException) - { - return BadRequest(ErrorResponse.UserCommon.NotExist()); - } + + var userId = await _userService.GetUserIdByUsernameAsync(member); + var delete = await _service.RemoveMemberAsync(timelineId, userId); + return Ok(CommonDeleteResponse.Create(delete)); } /// @@ -239,16 +217,9 @@ namespace Timeline.Controllers { var userId = this.GetUserId(); - try - { - var timeline = await _service.CreateTimelineAsync(body.Name, userId); - var result = await Map(timeline); - return result; - } - catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.Timeline) - { - return BadRequest(ErrorResponse.TimelineController.NameConflict()); - } + var timeline = await _service.CreateTimelineAsync(body.Name, userId); + var result = await Map(timeline); + return result; } /// @@ -271,15 +242,8 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - try - { - await _service.DeleteTimelineAsync(timelineId); - return Ok(); - } - catch (TimelineNotExistException) - { - return BadRequest(ErrorResponse.TimelineController.NotExist()); - } + await _service.DeleteTimelineAsync(timelineId); + return Ok(); } } } diff --git a/BackEnd/Timeline/Controllers/TimelinePostController.cs b/BackEnd/Timeline/Controllers/TimelinePostController.cs index 2d3e5423..70f672d1 100644 --- a/BackEnd/Timeline/Controllers/TimelinePostController.cs +++ b/BackEnd/Timeline/Controllers/TimelinePostController.cs @@ -22,9 +22,6 @@ namespace Timeline.Controllers /// [ApiController] [Route("timelines/{timeline}/posts")] - [CatchTimelineNotExistException] - [CatchTimelinePostNotExistException] - [CatchTimelinePostDataNotExistException] [ProducesErrorResponseType(typeof(CommonResponse))] public class TimelinePostController : Controller { diff --git a/BackEnd/Timeline/Controllers/TokenController.cs b/BackEnd/Timeline/Controllers/TokenController.cs index 3d4e9444..915f710d 100644 --- a/BackEnd/Timeline/Controllers/TokenController.cs +++ b/BackEnd/Timeline/Controllers/TokenController.cs @@ -44,7 +44,7 @@ namespace Timeline.Controllers try { DateTime? expireTime = null; - if (request.Expire != null) + if (request.Expire is not null) expireTime = _clock.GetCurrentTime().AddDays(request.Expire.Value); var result = await _userTokenManager.CreateTokenAsync(request.Username, request.Password, expireTime); @@ -55,7 +55,7 @@ namespace Timeline.Controllers User = await _mapper.MapAsync(result.User, Url, User) }; } - catch (UserNotExistException) + catch (EntityNotExistException) { return BadRequest(ErrorResponse.TokenController.Create_BadCredential()); } diff --git a/BackEnd/Timeline/Controllers/UserAvatarController.cs b/BackEnd/Timeline/Controllers/UserAvatarController.cs index b1129329..5d9becaa 100644 --- a/BackEnd/Timeline/Controllers/UserAvatarController.cs +++ b/BackEnd/Timeline/Controllers/UserAvatarController.cs @@ -44,16 +44,8 @@ namespace Timeline.Controllers public async Task Get([FromRoute][Username] string username, [FromHeader(Name = "If-None-Match")] string? ifNoneMatch) { _ = ifNoneMatch; - try - { - long userId = await _userService.GetUserIdByUsernameAsync(username); - return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarDigestAsync(userId), () => _service.GetAvatarAsync(userId)); - } - catch (UserNotExistException) - { - return NotFound(ErrorResponse.UserCommon.NotExist()); - } - + long userId = await _userService.GetUserIdByUsernameAsync(username); + return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarDigestAsync(userId), () => _service.GetAvatarAsync(userId)); } /// @@ -76,15 +68,7 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - long id; - try - { - id = await _userService.GetUserIdByUsernameAsync(username); - } - catch (UserNotExistException) - { - return BadRequest(ErrorResponse.UserCommon.NotExist()); - } + long id = await _userService.GetUserIdByUsernameAsync(username); try { @@ -127,15 +111,7 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - long id; - try - { - id = await _userService.GetUserIdByUsernameAsync(username); - } - catch (UserNotExistException) - { - return BadRequest(ErrorResponse.UserCommon.NotExist()); - } + long id = await _userService.GetUserIdByUsernameAsync(username); await _service.DeleteAvatarAsync(id); return Ok(); diff --git a/BackEnd/Timeline/Controllers/UserController.cs b/BackEnd/Timeline/Controllers/UserController.cs index c0ae6a09..bdf9c0b7 100644 --- a/BackEnd/Timeline/Controllers/UserController.cs +++ b/BackEnd/Timeline/Controllers/UserController.cs @@ -6,7 +6,6 @@ using System.Threading.Tasks; using Timeline.Auth; using Timeline.Models.Http; using Timeline.Models.Validation; -using Timeline.Services; using Timeline.Services.Mapper; using Timeline.Services.User; @@ -59,16 +58,10 @@ namespace Timeline.Controllers [ProducesResponseType(StatusCodes.Status403Forbidden)] public async Task> Post([FromBody] HttpUserPostRequest body) { - try - { - var user = await _userService.CreateUserAsync( - new CreateUserParams(body.Username, body.Password) { Nickname = body.Nickname }); - return await _mapper.MapAsync(user, Url, User); - } - catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User) - { - return BadRequest(ErrorResponse.UserController.UsernameConflict()); - } + + var user = await _userService.CreateUserAsync( + new CreateUserParams(body.Username, body.Password) { Nickname = body.Nickname }); + return await _mapper.MapAsync(user, Url, User); } /// @@ -81,16 +74,9 @@ namespace Timeline.Controllers [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task> Get([FromRoute][Username] string username) { - try - { - var id = await _userService.GetUserIdByUsernameAsync(username); - var user = await _userService.GetUserAsync(id); - return await _mapper.MapAsync(user, Url, User); - } - catch (UserNotExistException) - { - return NotFound(ErrorResponse.UserCommon.NotExist()); - } + var id = await _userService.GetUserIdByUsernameAsync(username); + var user = await _userService.GetUserAsync(id); + return await _mapper.MapAsync(user, Url, User); } /// @@ -109,20 +95,9 @@ namespace Timeline.Controllers { if (UserHasUserManagementPermission) { - try - { - var id = await _userService.GetUserIdByUsernameAsync(username); - var user = await _userService.ModifyUserAsync(id, _mapper.AutoMapperMap(body)); - return await _mapper.MapAsync(user, Url, User); - } - catch (UserNotExistException) - { - return NotFound(ErrorResponse.UserCommon.NotExist()); - } - catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User) - { - return BadRequest(ErrorResponse.UserController.UsernameConflict()); - } + var id = await _userService.GetUserIdByUsernameAsync(username); + var user = await _userService.ModifyUserAsync(id, _mapper.AutoMapperMap(body)); + return await _mapper.MapAsync(user, Url, User); } else { @@ -204,10 +179,6 @@ namespace Timeline.Controllers await _userPermissionService.AddPermissionToUserAsync(id, permission); return Ok(); } - catch (UserNotExistException) - { - return NotFound(ErrorResponse.UserCommon.NotExist()); - } catch (InvalidOperationOnRootUserException) { return BadRequest(ErrorResponse.UserController.ChangePermission_RootUser()); @@ -228,10 +199,6 @@ namespace Timeline.Controllers await _userPermissionService.RemovePermissionFromUserAsync(id, permission); return Ok(); } - catch (UserNotExistException) - { - return NotFound(ErrorResponse.UserCommon.NotExist()); - } catch (InvalidOperationOnRootUserException) { return BadRequest(ErrorResponse.UserController.ChangePermission_RootUser()); -- cgit v1.2.3