From e7ca87f25dae2f806469043ee556d4790d9ebcae Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 10 Mar 2020 03:04:23 +0800 Subject: ... --- Timeline/Controllers/TimelineController.cs | 43 ++++++++++++++++++------------ 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'Timeline/Controllers/TimelineController.cs') diff --git a/Timeline/Controllers/TimelineController.cs b/Timeline/Controllers/TimelineController.cs index 85ccb5c1..00e9a860 100644 --- a/Timeline/Controllers/TimelineController.cs +++ b/Timeline/Controllers/TimelineController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Authorization; +using AutoMapper; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -6,12 +7,13 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; -using Timeline.Filters; -using Timeline.Models.Http; -using Timeline.Models.Validation; -using Timeline.Services; +using TimelineApp.Filters; +using TimelineApp.Models; +using TimelineApp.Models.Http; +using TimelineApp.Models.Validation; +using TimelineApp.Services; -namespace Timeline.Controllers +namespace TimelineApp.Controllers { [ApiController] [CatchTimelineNotExistException] @@ -22,11 +24,14 @@ namespace Timeline.Controllers private readonly IUserService _userService; private readonly ITimelineService _service; - public TimelineController(ILogger logger, IUserService userService, ITimelineService service) + private readonly IMapper _mapper; + + public TimelineController(ILogger logger, IUserService userService, ITimelineService service, IMapper mapper) { _logger = logger; _userService = userService; _service = service; + _mapper = mapper; } [HttpGet("timelines")] @@ -81,27 +86,31 @@ namespace Timeline.Controllers } } - var result = await _service.GetTimelines(relationship, visibilityFilter); - result.ForEach(t => t.FillLinks(Url)); - return Ok(result); + var timelines = await _service.GetTimelines(relationship, visibilityFilter); + var result = _mapper.Map>(timelines); + return result; } [HttpGet("timelines/{name}")] public async Task> TimelineGet([FromRoute][TimelineName] string name) { - var result = (await _service.GetTimeline(name)).FillLinks(Url); - return Ok(result); + var timeline = await _service.GetTimeline(name); + var result = _mapper.Map(timeline); + return result; } [HttpGet("timelines/{name}/posts")] - public async Task>> PostListGet([FromRoute][TimelineName] string name) + public async Task>> PostListGet([FromRoute][TimelineName] string name) { if (!this.IsAdministrator() && !await _service.HasReadPermission(name, this.GetOptionalUserId())) { return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } - return await _service.GetPosts(name); + var posts = await _service.GetPosts(name); + var result = _mapper.Map>(posts); + + return result; } [HttpPost("timelines/{name}/posts")] @@ -120,7 +129,7 @@ namespace Timeline.Controllers [HttpDelete("timelines/{name}/posts/{id}")] [Authorize] - public async Task PostDelete([FromRoute][TimelineName] string name, [FromRoute] long id) + public async Task> PostDelete([FromRoute][TimelineName] string name, [FromRoute] long id) { try { @@ -129,11 +138,11 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } await _service.DeletePost(name, id); - return Ok(CommonDeleteResponse.Delete()); + return CommonDeleteResponse.Delete(); } catch (TimelinePostNotExistException) { - return Ok(CommonDeleteResponse.NotExist()); + return CommonDeleteResponse.NotExist(); } } -- cgit v1.2.3