From 8ab93a7235af0897c9ea5a20d7ab85109a7c8237 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Thu, 30 Sep 2021 10:10:51 +0330 Subject: [PATCH] #208 api improvement --- RMuseum/Controllers/GanjoorController.cs | 6 +++--- RMuseum/RMuseum.xml | 6 +++--- RMuseum/Services/IGanjoorService.cs | 4 ++-- .../GanjoorService-Bookmarking.cs | 21 ++++++++++++++----- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/RMuseum/Controllers/GanjoorController.cs b/RMuseum/Controllers/GanjoorController.cs index 7fa02249..cd6d9634 100644 --- a/RMuseum/Controllers/GanjoorController.cs +++ b/RMuseum/Controllers/GanjoorController.cs @@ -1929,19 +1929,19 @@ namespace RMuseum.Controllers /// - /// get poem user bookmarks + /// get poem user bookmarks (only Id, CoupletIndex and DateTime are valid in the output view model) /// /// /// [HttpGet] [Route("bookmark/{poemId}")] [Authorize] - [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorUserBookmark[]))] + [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorUserBookmarkViewModel[]))] [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] public async Task GetPoemUserBookmarks(int poemId) { Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value); - RServiceResult res = await _ganjoorService.GetPoemUserBookmarks(loggedOnUserId, poemId); + RServiceResult res = await _ganjoorService.GetPoemUserBookmarks(loggedOnUserId, poemId); if (!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); return Ok(res.Result); diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index da64922e..db4d7bb7 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -1227,7 +1227,7 @@ - get poem user bookmarks + get poem user bookmarks (only Id, CoupletIndex and DateTime are valid in the output view model) @@ -8703,7 +8703,7 @@ - get user ganjoor bookmarks + get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid) @@ -9790,7 +9790,7 @@ - get user ganjoor bookmarks + get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid) diff --git a/RMuseum/Services/IGanjoorService.cs b/RMuseum/Services/IGanjoorService.cs index 7c2d5e02..61a7b558 100644 --- a/RMuseum/Services/IGanjoorService.cs +++ b/RMuseum/Services/IGanjoorService.cs @@ -585,12 +585,12 @@ namespace RMuseum.Services Task> DeleteGanjoorBookmark(Guid bookmarkId, Guid userId); /// - /// get user ganjoor bookmarks + /// get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid) /// /// /// /// - Task> GetPoemUserBookmarks(Guid userId, int poemId); + Task> GetPoemUserBookmarks(Guid userId, int poemId); /// /// get verse bookmarks diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-Bookmarking.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-Bookmarking.cs index d65992f1..e7fd472e 100644 --- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-Bookmarking.cs +++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-Bookmarking.cs @@ -82,15 +82,26 @@ namespace RMuseum.Services.Implementation } /// - /// get user ganjoor bookmarks + /// get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid) /// /// /// /// - public async Task> GetPoemUserBookmarks(Guid userId, int poemId) - { - GanjoorUserBookmark[] bookmarks = await _context.GanjoorUserBookmarks.Where(b => b.PoemId == poemId && b.UserId == userId).ToArrayAsync(); - return new RServiceResult(bookmarks); + public async Task> GetPoemUserBookmarks(Guid userId, int poemId) + { + GanjoorUserBookmarkViewModel[] bookmarks = + await _context.GanjoorUserBookmarks + .Where(b => b.PoemId == poemId && b.UserId == userId) + .Select(b => + new GanjoorUserBookmarkViewModel() + { + Id = b.Id, + CoupletIndex = b.CoupletIndex, + DateTime = b.DateTime, + } + ) + .ToArrayAsync(); + return new RServiceResult(bookmarks); } ///