aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Controllers
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-04-07 22:24:59 +0800
committercrupest <crupest@outlook.com>2022-04-07 22:24:59 +0800
commit9e559fc918d4b4485ef589184348686927ebd63c (patch)
tree4acdc6ee20dfe66cafd413c21ca50b35d217f506 /BackEnd/Timeline/Controllers
parenta1f6b41accb47e4c1e1e0474148afa94732377da (diff)
downloadtimeline-9e559fc918d4b4485ef589184348686927ebd63c.tar.gz
timeline-9e559fc918d4b4485ef589184348686927ebd63c.tar.bz2
timeline-9e559fc918d4b4485ef589184348686927ebd63c.zip
...
Diffstat (limited to 'BackEnd/Timeline/Controllers')
-rw-r--r--BackEnd/Timeline/Controllers/Resource.Designer.cs9
-rw-r--r--BackEnd/Timeline/Controllers/Resource.resx3
-rw-r--r--BackEnd/Timeline/Controllers/TimelineController.cs18
-rw-r--r--BackEnd/Timeline/Controllers/TimelineV2Controller.cs33
4 files changed, 39 insertions, 24 deletions
diff --git a/BackEnd/Timeline/Controllers/Resource.Designer.cs b/BackEnd/Timeline/Controllers/Resource.Designer.cs
index 4c9da98a..eeb2f0fa 100644
--- a/BackEnd/Timeline/Controllers/Resource.Designer.cs
+++ b/BackEnd/Timeline/Controllers/Resource.Designer.cs
@@ -112,15 +112,6 @@ namespace Timeline.Controllers {
}
/// <summary>
- /// Looks up a localized string similar to Multiple timeline with the name exists. Please use new api to get timeline..
- /// </summary>
- internal static string MessageMultipleTimeline {
- get {
- return ResourceManager.GetString("MessageMultipleTimeline", resourceCulture);
- }
- }
-
- /// <summary>
/// Looks up a localized string similar to The old password is wrong..
/// </summary>
internal static string MessageOldPasswordWrong {
diff --git a/BackEnd/Timeline/Controllers/Resource.resx b/BackEnd/Timeline/Controllers/Resource.resx
index 004bd7cc..b70e5230 100644
--- a/BackEnd/Timeline/Controllers/Resource.resx
+++ b/BackEnd/Timeline/Controllers/Resource.resx
@@ -159,7 +159,4 @@
<data name="MessageUsernameConflict" xml:space="preserve">
<value>A user with given username already exists.</value>
</data>
- <data name="MessageMultipleTimeline" xml:space="preserve">
- <value>Multiple timeline with the name exists. Please use new api to get timeline.</value>
- </data>
</root> \ No newline at end of file
diff --git a/BackEnd/Timeline/Controllers/TimelineController.cs b/BackEnd/Timeline/Controllers/TimelineController.cs
index c10a8793..7aeec02f 100644
--- a/BackEnd/Timeline/Controllers/TimelineController.cs
+++ b/BackEnd/Timeline/Controllers/TimelineController.cs
@@ -21,6 +21,7 @@ namespace Timeline.Controllers
/// </summary>
[ApiController]
[Route("timelines")]
+ [CatchMultipleTimelineException]
[ProducesErrorResponseType(typeof(CommonResponse))]
public class TimelineController : MyControllerBase
{
@@ -120,18 +121,11 @@ namespace Timeline.Controllers
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult<HttpTimeline>> TimelineGet([FromRoute][GeneralTimelineName] string timeline)
- {
- try
- {
- var timelineId = await _service.GetTimelineIdByNameAsync(timeline);
- var t = await _service.GetTimelineAsync(timelineId);
- var result = await Map(t);
- return result;
- }
- catch (MultipleTimelineException)
- {
- return BadRequestWithCommonResponse(ErrorCodes.TimelineController.MultipleTimelineWithSameName, Resource.MessageMultipleTimeline);
- }
+ {
+ var timelineId = await _service.GetTimelineIdByNameAsync(timeline);
+ var t = await _service.GetTimelineAsync(timelineId);
+ var result = await Map(t);
+ return result;
}
/// <summary>
diff --git a/BackEnd/Timeline/Controllers/TimelineV2Controller.cs b/BackEnd/Timeline/Controllers/TimelineV2Controller.cs
new file mode 100644
index 00000000..7543c2a8
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/TimelineV2Controller.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Timeline.Entities;
+using Timeline.Models.Http;
+using Timeline.Services.Mapper;
+using Timeline.Services.Timeline;
+
+namespace Timeline.Controllers
+{
+ [ApiController]
+ [Route("v2/timelines")]
+ public class TimelineV2Controller : MyControllerBase
+ {
+ private ITimelineService _timelineService;
+ private TimelineMapper _timelineMapper;
+
+ public TimelineV2Controller(ITimelineService timelineService, TimelineMapper timelineMapper)
+ {
+ _timelineService = timelineService;
+ _timelineMapper = timelineMapper;
+ }
+
+ [HttpGet("{owner}/{timeline}")]
+ public async Task<ActionResult<HttpTimeline>> Get([FromRoute] string owner, [FromRoute] string timeline)
+ {
+ var timelineId = await _timelineService.GetTimelineIdAsync(owner, timeline);
+ var t = await _timelineService.GetTimelineAsync(timelineId);
+ return await _timelineMapper.MapAsync(t, Url, User);
+ }
+ }
+}
+