From 3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 4 Feb 2020 18:02:39 +0800 Subject: Add get timeline list feature. --- Timeline/Controllers/TimelineController.cs | 31 ++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'Timeline/Controllers/TimelineController.cs') diff --git a/Timeline/Controllers/TimelineController.cs b/Timeline/Controllers/TimelineController.cs index a514ccd9..811b0426 100644 --- a/Timeline/Controllers/TimelineController.cs +++ b/Timeline/Controllers/TimelineController.cs @@ -17,18 +17,41 @@ namespace Timeline.Controllers { private readonly ILogger _logger; + private readonly IUserService _userService; private readonly ITimelineService _service; - public TimelineController(ILogger logger, ITimelineService service) + public TimelineController(ILogger logger, IUserService userService, ITimelineService service) { _logger = logger; + _userService = userService; _service = service; } + [HttpGet("timelines")] + public async Task>> TimelineList([FromQuery][Username] string? relate) + { + long? relatedUserId = null; + if (relate != null) + { + try + { + relatedUserId = await _userService.GetUserIdByUsername(relate); + } + catch (UserNotExistException) + { + return BadRequest(ErrorResponse.TimelineController.QueryRelateNotExist()); + } + } + + var result = await _service.GetTimelines(relatedUserId); + result.ForEach(t => t.FillLinks(Url)); + return Ok(result); + } + [HttpGet("timelines/{name}")] public async Task> TimelineGet([FromRoute][TimelineName] string name) { - var result = (await _service.GetTimeline(name)).FillLinksForNormalTimeline(Url); + var result = (await _service.GetTimeline(name)).FillLinks(Url); return Ok(result); } @@ -85,7 +108,7 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid()); } await _service.ChangeProperty(name, body); - var timeline = (await _service.GetTimeline(name)).FillLinksForNormalTimeline(Url); + var timeline = (await _service.GetTimeline(name)).FillLinks(Url); return Ok(timeline); } @@ -137,7 +160,7 @@ namespace Timeline.Controllers try { - var timelineInfo = (await _service.CreateTimeline(body.Name, userId)).FillLinksForNormalTimeline(Url); + var timelineInfo = (await _service.CreateTimeline(body.Name, userId)).FillLinks(Url); return Ok(timelineInfo); } catch (ConflictException) -- cgit v1.2.3