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 | 03c9d4edc4e321db8c1b70ae621f77fa89664dfc (patch) | |
tree | 458d802973d4768e4bd5d463540608404b86c309 /Timeline/Controllers | |
parent | 7cf188134086c5d878cd3230345e89fc10b7e2ca (diff) | |
download | timeline-03c9d4edc4e321db8c1b70ae621f77fa89664dfc.tar.gz timeline-03c9d4edc4e321db8c1b70ae621f77fa89664dfc.tar.bz2 timeline-03c9d4edc4e321db8c1b70ae621f77fa89664dfc.zip |
Add get timeline list feature.
Diffstat (limited to 'Timeline/Controllers')
-rw-r--r-- | Timeline/Controllers/PersonalTimelineController.cs | 4 | ||||
-rw-r--r-- | Timeline/Controllers/TimelineController.cs | 31 |
2 files changed, 29 insertions, 6 deletions
diff --git a/Timeline/Controllers/PersonalTimelineController.cs b/Timeline/Controllers/PersonalTimelineController.cs index b6c213d9..cef04a97 100644 --- a/Timeline/Controllers/PersonalTimelineController.cs +++ b/Timeline/Controllers/PersonalTimelineController.cs @@ -28,7 +28,7 @@ namespace Timeline.Controllers [HttpGet("users/{username}/timeline")]
public async Task<ActionResult<TimelineInfo>> TimelineGet([FromRoute][Username] string username)
{
- return (await _service.GetTimeline(username)).FillLinksForPersonalTimeline(Url);
+ return (await _service.GetTimeline(username)).FillLinks(Url);
}
[HttpGet("users/{username}/timeline/posts")]
@@ -84,7 +84,7 @@ namespace Timeline.Controllers return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
}
await _service.ChangeProperty(username, body);
- var timeline = (await _service.GetTimeline(username)).FillLinksForPersonalTimeline(Url);
+ var timeline = (await _service.GetTimeline(username)).FillLinks(Url);
return Ok(timeline);
}
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)
|