aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Controllers/TimelineController.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-02-04 18:02:39 +0800
committercrupest <crupest@outlook.com>2020-02-04 18:02:39 +0800
commit3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1 (patch)
tree458d802973d4768e4bd5d463540608404b86c309 /Timeline/Controllers/TimelineController.cs
parente5cf0da3976116cd575e884fb8f191f225fe9301 (diff)
downloadtimeline-3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1.tar.gz
timeline-3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1.tar.bz2
timeline-3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1.zip
Add get timeline list feature.
Diffstat (limited to 'Timeline/Controllers/TimelineController.cs')
-rw-r--r--Timeline/Controllers/TimelineController.cs31
1 files changed, 27 insertions, 4 deletions
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<TimelineController> _logger;
+ private readonly IUserService _userService;
private readonly ITimelineService _service;
- public TimelineController(ILogger<TimelineController> logger, ITimelineService service)
+ public TimelineController(ILogger<TimelineController> logger, IUserService userService, ITimelineService service)
{
_logger = logger;
+ _userService = userService;
_service = service;
}
+ [HttpGet("timelines")]
+ public async Task<ActionResult<List<TimelineInfo>>> 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<ActionResult<TimelineInfo>> 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)