using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using RMuseum.Models.MusicCatalogue.ViewModels; using RMuseum.Services; using RSecurityBackend.Models.Generic; using System.Net; using System.Threading.Tasks; namespace RMuseum.Controllers { [Produces("application/json")] [Route("api/musiccatalogue")] public class MusicCatalogueController : Controller { /// /// golha collection programs /// /// collection id /// [HttpGet] [Route("golha/collection/{id}/programs")] [AllowAnonymous] [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GolhaProgramViewModel[]))] [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] public async Task GetGolhaCollectionPrograms(int id) { RServiceResult res = await _catalogueService.GetGolhaCollectionPrograms(id); if (!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); return Ok(res.Result); } /// /// program tracks /// /// /// [HttpGet] [Route("golha/program/{id}/tracks")] [AllowAnonymous] [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GolhaTrackViewModel[]))] [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] public async Task GetGolhaProgramTracks(int id) { RServiceResult res = await _catalogueService.GetGolhaProgramTracks(id); if (!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); return Ok(res.Result); } /// /// Catalogue Service /// protected readonly IMusicCatalogueService _catalogueService; /// /// constructor /// /// public MusicCatalogueController(IMusicCatalogueService catalogueService) { _catalogueService = catalogueService; } } }