docs: #287 added API for displaying the list of user related poem songs suggestions
This commit is contained in:
parent
5e2a51c9ff
commit
0d0b9b420a
@ -1318,6 +1318,33 @@ namespace RMuseum.Controllers
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// user suggested songs
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
[HttpGet]
|
||||
[Route("song/mysuggestions")]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<GanjoorPoemCorrectionViewModel>))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> GetUserSuggestedSongs([FromQuery] PagingParameterModel paging)
|
||||
{
|
||||
Guid userId =
|
||||
new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
||||
|
||||
var res =
|
||||
await _ganjoorService.GetUserSuggestedSongs(userId, paging);
|
||||
|
||||
// Paging Header
|
||||
HttpContext.Response.Headers.Add("paging-headers", JsonConvert.SerializeObject(res.Result.PagingMeta));
|
||||
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
return Ok(res.Result.Items);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// review song
|
||||
/// </summary>
|
||||
|
||||
@ -1128,6 +1128,13 @@
|
||||
history of suggested songs by a user
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.GetUserSuggestedSongs(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
user suggested songs
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.ReviewSong(RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel)">
|
||||
<summary>
|
||||
review song
|
||||
@ -10219,6 +10226,14 @@
|
||||
<param name="poemId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetUserSuggestedSongs(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
user suggested songs
|
||||
</summary>
|
||||
<param name="userId"></param>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetUserCorrections(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
get user or all corrections
|
||||
@ -12388,6 +12403,14 @@
|
||||
<param name="trackType"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetUserSuggestedSongs(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
user suggested songs
|
||||
</summary>
|
||||
<param name="userId"></param>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.SuggestSong(System.Guid,RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel)">
|
||||
<summary>
|
||||
suggest song
|
||||
|
||||
@ -181,6 +181,14 @@ namespace RMuseum.Services
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorPoemCorrectionViewModel>> GetLastUnreviewedUserCorrectionForPoem(Guid userId, int poemId);
|
||||
|
||||
/// <summary>
|
||||
/// user suggested songs
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<(PaginationMetadata PagingMeta, PoemMusicTrackViewModel[] Items)>> GetUserSuggestedSongs(Guid userId, PagingParameterModel paging);
|
||||
|
||||
/// <summary>
|
||||
/// get user or all corrections
|
||||
/// </summary>
|
||||
|
||||
@ -8,6 +8,7 @@ using System.Data;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using DNTPersianUtils.Core;
|
||||
using RSecurityBackend.Services.Implementation;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
@ -64,6 +65,42 @@ namespace RMuseum.Services.Implementation
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// user suggested songs
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<(PaginationMetadata PagingMeta, PoemMusicTrackViewModel[] Items)>> GetUserSuggestedSongs(Guid userId, PagingParameterModel paging)
|
||||
{
|
||||
var source = from track in
|
||||
_context.GanjoorPoemMusicTracks
|
||||
where track.SuggestedById == userId
|
||||
orderby track.SongOrder
|
||||
select
|
||||
new PoemMusicTrackViewModel()
|
||||
{
|
||||
Id = track.Id,
|
||||
PoemId = track.PoemId,
|
||||
TrackType = track.TrackType,
|
||||
ArtistName = track.ArtistName,
|
||||
ArtistUrl = track.ArtistUrl,
|
||||
AlbumName = track.AlbumName,
|
||||
AlbumUrl = track.AlbumUrl,
|
||||
TrackName = track.TrackName,
|
||||
TrackUrl = track.TrackUrl,
|
||||
Description = track.Description,
|
||||
BrokenLink = track.BrokenLink,
|
||||
GolhaTrackId = track.GolhaTrackId == null ? 0 : (int)track.GolhaTrackId,
|
||||
Approved = track.Approved,
|
||||
Rejected = track.Rejected,
|
||||
RejectionCause = track.RejectionCause
|
||||
|
||||
};
|
||||
return new RServiceResult<(PaginationMetadata, PoemMusicTrackViewModel[])>
|
||||
(await QueryablePaginator<PoemMusicTrackViewModel>.Paginate(source, paging));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// suggest song
|
||||
@ -423,7 +460,7 @@ namespace RMuseum.Services.Implementation
|
||||
|
||||
}
|
||||
).AsNoTracking().SingleOrDefaultAsync()
|
||||
) ;
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -433,7 +470,7 @@ namespace RMuseum.Services.Implementation
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<PoemMusicTrackViewModel>> ModifyPublishedSong(PoemMusicTrackViewModel song)
|
||||
{
|
||||
if (!song.Approved )
|
||||
if (!song.Approved)
|
||||
return new RServiceResult<PoemMusicTrackViewModel>(null, "!song.Approved ");
|
||||
|
||||
|
||||
@ -483,5 +520,7 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user