GET API برای پروفایلهای خوانش کاربران
This commit is contained in:
parent
aa67d2e1eb
commit
20a1fa53d2
@ -126,6 +126,24 @@ namespace RMuseum.Controllers
|
||||
return BadRequest(res.ExceptionString);
|
||||
}
|
||||
|
||||
[HttpGet("profiles")]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<UserNarrationProfileViewModel>))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))]
|
||||
|
||||
public async Task<IActionResult> GetUserNarrationProfiles()
|
||||
{
|
||||
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
||||
|
||||
|
||||
var res = await _audioService.GetUserNarrationProfiles(loggedOnUserId);
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
|
||||
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
|
||||
@ -0,0 +1,75 @@
|
||||
using RSecurityBackend.Models.Auth.ViewModels;
|
||||
using System;
|
||||
|
||||
namespace RMuseum.Models.GanjoorAudio.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// UserNarrationProfile View Model
|
||||
/// </summary>
|
||||
public class UserNarrationProfileViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="src"></param>
|
||||
public UserNarrationProfileViewModel(UserNarrationProfile src)
|
||||
{
|
||||
Id = src.Id;
|
||||
User = src.User == null ? null : new PublicRAppUser(src.User);
|
||||
UserId = src.UserId;
|
||||
FileSuffixWithoutDash = src.FileSuffixWithoutDash;
|
||||
ArtistName = src.ArtistName;
|
||||
ArtistUrl = src.ArtistUrl;
|
||||
AudioSrc = src.AudioSrc;
|
||||
AudioSrcUrl = src.AudioSrcUrl;
|
||||
IsDefault = src.IsDefault;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// User
|
||||
/// </summary>
|
||||
public PublicRAppUser User { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// UserId
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// this would be appended to audio files names prefixed by a dash to make them unique and specfic to user
|
||||
/// filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext}
|
||||
/// for example 2200-hrm.xml
|
||||
/// </summary>
|
||||
public string FileSuffixWithoutDash { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// artist name
|
||||
/// </summary>
|
||||
public string ArtistName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// artist url
|
||||
/// </summary>
|
||||
public string ArtistUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// audio src
|
||||
/// </summary>
|
||||
public string AudioSrc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// audio src url
|
||||
/// </summary>
|
||||
public string AudioSrcUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// is default
|
||||
/// </summary>
|
||||
public bool IsDefault { get; set; }
|
||||
}
|
||||
}
|
||||
@ -2000,6 +2000,64 @@
|
||||
Review Status
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel">
|
||||
<summary>
|
||||
UserNarrationProfile View Model
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.#ctor(RMuseum.Models.GanjoorAudio.UserNarrationProfile)">
|
||||
<summary>
|
||||
constructor
|
||||
</summary>
|
||||
<param name="src"></param>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.Id">
|
||||
<summary>
|
||||
Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.User">
|
||||
<summary>
|
||||
User
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.UserId">
|
||||
<summary>
|
||||
UserId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.FileSuffixWithoutDash">
|
||||
<summary>
|
||||
this would be appended to audio files names prefixed by a dash to make them unique and specfic to user
|
||||
filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext}
|
||||
for example 2200-hrm.xml
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.ArtistName">
|
||||
<summary>
|
||||
artist name
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.ArtistUrl">
|
||||
<summary>
|
||||
artist url
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.AudioSrc">
|
||||
<summary>
|
||||
audio src
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.AudioSrcUrl">
|
||||
<summary>
|
||||
audio src url
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.GanjoorAudio.ViewModels.UserNarrationProfileViewModel.IsDefault">
|
||||
<summary>
|
||||
is default
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.GanjoorIntegration.GanjoorLink">
|
||||
<summary>
|
||||
ganjoor link for artifacts and items
|
||||
@ -3481,6 +3539,13 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IAudioNarrationService.GetUserNarrationProfiles(System.Guid)">
|
||||
<summary>
|
||||
Get User Profiles
|
||||
</summary>
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.Implementation.ArtifactService">
|
||||
<summary>
|
||||
IArtifactService implementation
|
||||
@ -4238,6 +4303,13 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.AudioNarrationService.GetUserNarrationProfiles(System.Guid)">
|
||||
<summary>
|
||||
Get User Profiles
|
||||
</summary>
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:RMuseum.Services.Implementation.AudioNarrationService.Configuration">
|
||||
<summary>
|
||||
Configuration
|
||||
|
||||
@ -58,5 +58,13 @@ namespace RMuseum.Services
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<UploadSession>> GetUploadSession(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Get User Profiles
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<UserNarrationProfileViewModel[]>> GetUserNarrationProfiles(Guid userId);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -432,6 +432,29 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get User Profiles
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<UserNarrationProfileViewModel[]>> GetUserNarrationProfiles(Guid userId)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<UserNarrationProfileViewModel> profiles = new List<UserNarrationProfileViewModel>();
|
||||
|
||||
foreach(UserNarrationProfile p in (await _context.UserNarrationProfiles.Include(p => p.User).Where(p => p.UserId == userId).ToArrayAsync()))
|
||||
{
|
||||
profiles.Add(new UserNarrationProfileViewModel(p));
|
||||
}
|
||||
return new RServiceResult<UserNarrationProfileViewModel[]>(profiles.ToArray());
|
||||
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<UserNarrationProfileViewModel[]>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Configuration
|
||||
|
||||
Loading…
Reference in New Issue
Block a user