#208 api improvement

This commit is contained in:
Hamid Reza Mohammadi 2021-09-30 10:10:51 +03:30
parent 227d8a3609
commit 8ab93a7235
4 changed files with 24 additions and 13 deletions

View File

@ -1929,19 +1929,19 @@ namespace RMuseum.Controllers
/// <summary>
/// get poem user bookmarks
/// get poem user bookmarks (only Id, CoupletIndex and DateTime are valid in the output view model)
/// </summary>
/// <param name="poemId"></param>
/// <returns></returns>
[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<IActionResult> GetPoemUserBookmarks(int poemId)
{
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
RServiceResult<GanjoorUserBookmark[]> res = await _ganjoorService.GetPoemUserBookmarks(loggedOnUserId, poemId);
RServiceResult<GanjoorUserBookmarkViewModel[]> res = await _ganjoorService.GetPoemUserBookmarks(loggedOnUserId, poemId);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);

View File

@ -1227,7 +1227,7 @@
</member>
<member name="M:RMuseum.Controllers.GanjoorController.GetPoemUserBookmarks(System.Int32)">
<summary>
get poem user bookmarks
get poem user bookmarks (only Id, CoupletIndex and DateTime are valid in the output view model)
</summary>
<param name="poemId"></param>
<returns></returns>
@ -8703,7 +8703,7 @@
</member>
<member name="M:RMuseum.Services.IGanjoorService.GetPoemUserBookmarks(System.Guid,System.Int32)">
<summary>
get user ganjoor bookmarks
get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
</summary>
<param name="userId"></param>
<param name="poemId"></param>
@ -9790,7 +9790,7 @@
</member>
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetPoemUserBookmarks(System.Guid,System.Int32)">
<summary>
get user ganjoor bookmarks
get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
</summary>
<param name="userId"></param>
<param name="poemId"></param>

View File

@ -585,12 +585,12 @@ namespace RMuseum.Services
Task<RServiceResult<bool>> DeleteGanjoorBookmark(Guid bookmarkId, Guid userId);
/// <summary>
/// get user ganjoor bookmarks
/// get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
/// </summary>
/// <param name="userId"></param>
/// <param name="poemId"></param>
/// <returns></returns>
Task<RServiceResult<GanjoorUserBookmark[]>> GetPoemUserBookmarks(Guid userId, int poemId);
Task<RServiceResult<GanjoorUserBookmarkViewModel[]>> GetPoemUserBookmarks(Guid userId, int poemId);
/// <summary>
/// get verse bookmarks

View File

@ -82,15 +82,26 @@ namespace RMuseum.Services.Implementation
}
/// <summary>
/// get user ganjoor bookmarks
/// get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
/// </summary>
/// <param name="userId"></param>
/// <param name="poemId"></param>
/// <returns></returns>
public async Task<RServiceResult<GanjoorUserBookmark[]>> GetPoemUserBookmarks(Guid userId, int poemId)
{
GanjoorUserBookmark[] bookmarks = await _context.GanjoorUserBookmarks.Where(b => b.PoemId == poemId && b.UserId == userId).ToArrayAsync();
return new RServiceResult<GanjoorUserBookmark[]>(bookmarks);
public async Task<RServiceResult<GanjoorUserBookmarkViewModel[]>> 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<GanjoorUserBookmarkViewModel[]>(bookmarks);
}
/// <summary>