using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using RMuseum.Models.Auth.Memory; using RMuseum.Services; using RSecurityBackend.Models.Generic; using RSecurityBackend.Services; using System; using System.Linq; using System.Net; using System.Threading.Tasks; namespace RMuseum.Controllers { [Produces("application/json")] [Route("api/audio")] public class AudioNarrationController : Controller { /// /// imports data from ganjoor MySql database /// /// [HttpPost] [Route("mysqlonetimeimport")] [Authorize(Policy = RMuseumSecurableItem.AudioNarrationEntityShortName + ":" + RMuseumSecurableItem.ImportOperationShortName)] [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(bool))] [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] public async Task MysqlonetimeImport() { Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value); RServiceResult res = await _audioService.OneTimeImport(loggedOnUserId); if (res.Result) return Ok(); return BadRequest(res.ExceptionString); } /// /// constructor /// /// /// /// public AudioNarrationController(IAudioNarrationService audioService, IUserPermissionChecker userPermissionChecker) { _audioService = audioService; _userPermissionChecker = userPermissionChecker; } /// /// Artifact Service /// protected readonly IAudioNarrationService _audioService; /// /// IUserPermissionChecker instance /// protected IUserPermissionChecker _userPermissionChecker; } }