From 9e559fc918d4b4485ef589184348686927ebd63c Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 7 Apr 2022 22:24:59 +0800 Subject: ... --- BackEnd/Timeline/Controllers/Resource.Designer.cs | 9 ------ BackEnd/Timeline/Controllers/Resource.resx | 3 -- BackEnd/Timeline/Controllers/TimelineController.cs | 18 ++++-------- .../Timeline/Controllers/TimelineV2Controller.cs | 33 ++++++++++++++++++++++ 4 files changed, 39 insertions(+), 24 deletions(-) create mode 100644 BackEnd/Timeline/Controllers/TimelineV2Controller.cs (limited to 'BackEnd/Timeline/Controllers') 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 @@ -111,15 +111,6 @@ namespace Timeline.Controllers { } } - /// - /// Looks up a localized string similar to Multiple timeline with the name exists. Please use new api to get timeline.. - /// - internal static string MessageMultipleTimeline { - get { - return ResourceManager.GetString("MessageMultipleTimeline", resourceCulture); - } - } - /// /// Looks up a localized string similar to The old password is wrong.. /// 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 @@ A user with given username already exists. - - Multiple timeline with the name exists. Please use new api to get timeline. - \ 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 /// [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> 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; } /// 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> 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); + } + } +} + -- cgit v1.2.3