diff options
author | crupest <crupest@outlook.com> | 2020-02-04 18:02:39 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-02-04 18:02:39 +0800 |
commit | 3cbb2e7ef4bb2ccbbaadd18e49e2de392d6db2e1 (patch) | |
tree | 458d802973d4768e4bd5d463540608404b86c309 /Timeline/Controllers/TimelineController.cs | |
parent | e5cf0da3976116cd575e884fb8f191f225fe9301 (diff) | |
download | timeline-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.cs | 31 |
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)
|