#70 review song api
This commit is contained in:
parent
e837e905b6
commit
b159afaaf0
@ -335,6 +335,26 @@ namespace RMuseum.Controllers
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// review song
|
||||
/// </summary>
|
||||
/// <param name="song"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[Route("song")]
|
||||
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.ReviewSongs)]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PoemMusicTrackViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.Forbidden)]
|
||||
public async Task<IActionResult> ReviewSong([FromBody]PoemMusicTrackViewModel song)
|
||||
{
|
||||
var res =
|
||||
await _ganjoorService.ReviewSong(song);
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get a random poem from hafez
|
||||
/// </summary>
|
||||
|
||||
@ -731,6 +731,13 @@
|
||||
<param name="onlyMine"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.ReviewSong(RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel)">
|
||||
<summary>
|
||||
review song
|
||||
</summary>
|
||||
<param name="song"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.Faal">
|
||||
<summary>
|
||||
get a random poem from hafez
|
||||
@ -5699,6 +5706,13 @@
|
||||
<param name="song"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.ReviewSong(RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel)">
|
||||
<summary>
|
||||
review song
|
||||
</summary>
|
||||
<param name="song"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.Faal">
|
||||
<summary>
|
||||
get a random poem from hafez
|
||||
@ -6540,6 +6554,13 @@
|
||||
<param name="suggestedById"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.ReviewSong(RMuseum.Models.Ganjoor.ViewModels.PoemMusicTrackViewModel)">
|
||||
<summary>
|
||||
review song
|
||||
</summary>
|
||||
<param name="song"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.Faal">
|
||||
<summary>
|
||||
get a random poem from hafez
|
||||
|
||||
@ -131,6 +131,13 @@ namespace RMuseum.Services
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<PoemMusicTrackViewModel>> SuggestSong(Guid userId, PoemMusicTrackViewModel song);
|
||||
|
||||
/// <summary>
|
||||
/// review song
|
||||
/// </summary>
|
||||
/// <param name="song"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<PoemMusicTrackViewModel>> ReviewSong(PoemMusicTrackViewModel song);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// get a random poem from hafez
|
||||
|
||||
@ -892,6 +892,54 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// review song
|
||||
/// </summary>
|
||||
/// <param name="song"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<PoemMusicTrackViewModel>> ReviewSong(PoemMusicTrackViewModel song)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (song.Approved && song.Rejected)
|
||||
return new RServiceResult<PoemMusicTrackViewModel>(null, "song.Approved && song.Rejected");
|
||||
|
||||
var track = await _context.GanjoorPoemMusicTracks.Where(t => t.Id == song.Id).SingleOrDefaultAsync();
|
||||
|
||||
track.TrackType = song.TrackType;
|
||||
track.ArtistName = song.ArtistName;
|
||||
track.ArtistUrl = song.ArtistUrl;
|
||||
track.AlbumName = song.AlbumName;
|
||||
track.AlbumUrl = song.AlbumUrl;
|
||||
track.TrackName = song.TrackName;
|
||||
track.TrackUrl = song.TrackUrl;
|
||||
if(!track.Approved && song.Approved)
|
||||
{
|
||||
track.ApprovalDate = DateTime.Now;
|
||||
}
|
||||
track.Approved = song.Approved;
|
||||
track.Rejected = song.Rejected;
|
||||
track.RejectionCause = song.RejectionCause;
|
||||
track.BrokenLink = song.BrokenLink;
|
||||
|
||||
GanjoorSinger singer = await _context.GanjoorSingers.Where(s => s.Url == track.ArtistUrl).FirstOrDefaultAsync();
|
||||
if (singer != null)
|
||||
{
|
||||
track.SingerId = singer.Id;
|
||||
}
|
||||
|
||||
_context.GanjoorPoemMusicTracks.Update(track);
|
||||
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return new RServiceResult<PoemMusicTrackViewModel>(song);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<PoemMusicTrackViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get a random poem from hafez
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user