diff options
author | crupest <crupest@outlook.com> | 2022-04-12 18:07:17 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-04-12 18:07:17 +0800 |
commit | bdcbe0612ae3e4e173754c5e663e2668e9f380ec (patch) | |
tree | c8f2b703302b0fed91925962a1695c2394bf345a /BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs | |
parent | 3fc0cd57711b41e3a65e24e30ceaa3f95d7d4415 (diff) | |
download | timeline-bdcbe0612ae3e4e173754c5e663e2668e9f380ec.tar.gz timeline-bdcbe0612ae3e4e173754c5e663e2668e9f380ec.tar.bz2 timeline-bdcbe0612ae3e4e173754c5e663e2668e9f380ec.zip |
...
Diffstat (limited to 'BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs')
-rw-r--r-- | BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs b/BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs deleted file mode 100644 index 2b31f43e..00000000 --- a/BackEnd/Timeline/Controllers/TimelineBookmarkV2Controller.cs +++ /dev/null @@ -1,177 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Timeline.Models; -using Timeline.Models.Http; -using Timeline.Models.Validation; -using Timeline.Services; -using Timeline.Services.Api; -using Timeline.Services.Timeline; -using Timeline.Services.User; - -namespace Timeline.Controllers -{ - [ApiController] - [Route("v2/users/{username}/bookmarks")] - public class TimelineBookmarkV2Controller : MyControllerBase - { - private readonly IUserService _userService; - private readonly ITimelineService _timelineService; - private readonly ITimelineBookmarkService1 _timelineBookmarkService; - - public TimelineBookmarkV2Controller(IUserService userService, ITimelineService timelineService, ITimelineBookmarkService1 timelineBookmarkService) - { - _userService = userService; - _timelineService = timelineService; - _timelineBookmarkService = timelineBookmarkService; - } - - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - [HttpGet] - public async Task<ActionResult<Page<TimelineBookmark>>> ListAsync([FromRoute][Username] string username, - [FromQuery][PositiveInteger] int? page, [FromQuery][PositiveInteger] int? pageSize) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && !await _timelineBookmarkService.CanReadBookmarksAsync(userId, GetOptionalAuthUserId())) - { - return Forbid(); - } - return await _timelineBookmarkService.GetBookmarksAsync(userId, page ?? 1, pageSize ?? 20); - } - - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - [HttpGet("{index}")] - public async Task<ActionResult<TimelineBookmark>> GetAsync([FromRoute][Username] string username, [FromRoute][PositiveInteger] int index) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && !await _timelineBookmarkService.CanReadBookmarksAsync(userId, GetOptionalAuthUserId())) - { - return Forbid(); - } - return await _timelineBookmarkService.GetBookmarkAtAsync(userId, index); - } - - [ProducesResponseType(StatusCodes.Status201Created)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - [Authorize] - [HttpPost] - public async Task<ActionResult<TimelineBookmark>> CreateAsync([FromRoute][Username] string username, [FromBody] HttpTimelineBookmarkCreateRequest body) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && GetAuthUserId() != userId) - { - return Forbid(); - } - long timelineId; - try - { - timelineId = await _timelineService.GetTimelineIdAsync(body.TimelineOwner, body.TimelineName); - } - catch (EntityNotExistException) - { - return UnprocessableEntity(); - } - var bookmark = await _timelineBookmarkService.AddBookmarkAsync(userId, timelineId, body.Position); - return CreatedAtAction("Get", new { username, index = bookmark.Position }, bookmark); - } - - [Authorize] - [HttpPost("delete")] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - public async Task<ActionResult> DeleteAsync([FromRoute][Username] string username, [FromBody] HttpTimelinebookmarkDeleteRequest body) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && GetAuthUserId() != userId) - { - return Forbid(); - } - - long timelineId; - try - { - timelineId = await _timelineService.GetTimelineIdAsync(body.TimelineOwner, body.TimelineName); - } - catch (EntityNotExistException) - { - return UnprocessableEntity(); - } - - await _timelineBookmarkService.DeleteBookmarkAsync(userId, timelineId); - - return NoContent(); - } - - [Authorize] - [HttpPost("move")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - public async Task<ActionResult<TimelineBookmark>> MoveAsync([FromRoute][Username] string username, [FromBody] HttpTimelineBookmarkMoveRequest body) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && GetAuthUserId() != userId) - { - return Forbid(); - } - - long timelineId; - try - { - timelineId = await _timelineService.GetTimelineIdAsync(body.TimelineOwner, body.TimelineName); - } - catch (EntityNotExistException) - { - return UnprocessableEntity(); - } - - var bookmark = await _timelineBookmarkService.MoveBookmarkAsync(userId, timelineId, body.Position!.Value); - - return Ok(bookmark); - } - - [HttpGet("visibility")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - public async Task<ActionResult<HttpTimelineBookmarkVisibility>> GetVisibilityAsync([FromRoute][Username] string username) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - var visibility = await _timelineBookmarkService.GetBookmarkVisibilityAsync(userId); - return Ok(new HttpTimelineBookmarkVisibility { Visibility = visibility }); - } - - [HttpPut("visibility")] - [Authorize] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(StatusCodes.Status403Forbidden)] - [ProducesResponseType(StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status422UnprocessableEntity)] - public async Task<ActionResult> PutVisibilityAsync([FromRoute][Username] string username, [FromBody] HttpTimelineBookmarkVisibility body) - { - var userId = await _userService.GetUserIdByUsernameAsync(username); - if (!UserHasPermission(UserPermission.UserBookmarkManagement) && GetAuthUserId() != userId) - { - return Forbid(); - } - await _timelineBookmarkService.SetBookmarkVisibilityAsync(userId, body.Visibility); - return NoContent(); - } - } -} |