Cleaning up

This commit is contained in:
Zoe Roux 2020-08-07 00:00:46 +02:00
parent 83a463851d
commit 49471e013d
10 changed files with 126 additions and 65 deletions

View File

@ -14,11 +14,11 @@ namespace Kyoo.Api
[Route("api/episode")] [Route("api/episode")]
[Route("api/episodes")] [Route("api/episodes")]
[ApiController] [ApiController]
public class EpisodesApi : CrudApi<Episode> public class EpisodeApi : CrudApi<Episode>
{ {
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public EpisodesApi(ILibraryManager libraryManager, IConfiguration configuration) public EpisodeApi(ILibraryManager libraryManager, IConfiguration configuration)
: base(libraryManager.EpisodeRepository, configuration) : base(libraryManager.EpisodeRepository, configuration)
{ {
_libraryManager = libraryManager; _libraryManager = libraryManager;

View File

@ -15,11 +15,11 @@ namespace Kyoo.Api
[Route("api/genre")] [Route("api/genre")]
[Route("api/genres")] [Route("api/genres")]
[ApiController] [ApiController]
public class GenresAPI : CrudApi<Genre> public class GenreApi : CrudApi<Genre>
{ {
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public GenresAPI(ILibraryManager libraryManager, IConfiguration config) public GenreApi(ILibraryManager libraryManager, IConfiguration config)
: base(libraryManager.GenreRepository, config) : base(libraryManager.GenreRepository, config)
{ {
_libraryManager = libraryManager; _libraryManager = libraryManager;

View File

@ -14,12 +14,12 @@ namespace Kyoo.Api
[Route("api/library")] [Route("api/library")]
[Route("api/libraries")] [Route("api/libraries")]
[ApiController] [ApiController]
public class LibrariesAPI : CrudApi<Library> public class LibraryAPI : CrudApi<Library>
{ {
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
private readonly ITaskManager _taskManager; private readonly ITaskManager _taskManager;
public LibrariesAPI(ILibraryManager libraryManager, ITaskManager taskManager, IConfiguration configuration) public LibraryAPI(ILibraryManager libraryManager, ITaskManager taskManager, IConfiguration configuration)
: base(libraryManager.LibraryRepository, configuration) : base(libraryManager.LibraryRepository, configuration)
{ {
_libraryManager = libraryManager; _libraryManager = libraryManager;

View File

@ -15,13 +15,13 @@ namespace Kyoo.Api
[Route("api/item")] [Route("api/item")]
[Route("api/items")] [Route("api/items")]
[ApiController] [ApiController]
public class LibraryItemsApi : ControllerBase public class LibraryItemApi : ControllerBase
{ {
private readonly ILibraryItemRepository _libraryItems; private readonly ILibraryItemRepository _libraryItems;
private readonly string _baseURL; private readonly string _baseURL;
public LibraryItemsApi(ILibraryItemRepository libraryItems, IConfiguration configuration) public LibraryItemApi(ILibraryItemRepository libraryItems, IConfiguration configuration)
{ {
_libraryItems = libraryItems; _libraryItems = libraryItems;
_baseURL = configuration.GetValue<string>("public_url").TrimEnd('/'); _baseURL = configuration.GetValue<string>("public_url").TrimEnd('/');

View File

@ -1,27 +0,0 @@
using System.Collections.Generic;
using Kyoo.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Kyoo.Api
{
[Route("api/provider")]
[Route("api/providers")]
[ApiController]
public class ProviderAPI : ControllerBase
{
private readonly DatabaseContext _database;
public ProviderAPI(DatabaseContext database)
{
_database = database;
}
[HttpGet("")]
[Authorize(Policy="Read")]
public ActionResult<IEnumerable<ProviderID>> Index()
{
return _database.Providers;
}
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
using Kyoo.CommonApi;
using Kyoo.Controllers;
using Kyoo.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace Kyoo.Api
{
[Route("api/provider")]
[Route("api/providers")]
[ApiController]
public class ProviderAPI : CrudApi<ProviderID>
{
private readonly ILibraryManager _libraryManager;
public ProviderAPI(ILibraryManager libraryManager, IConfiguration config)
: base(libraryManager.ProviderRepository, config)
{
_libraryManager = libraryManager;
}
}
}

View File

@ -14,11 +14,11 @@ namespace Kyoo.Api
[Route("api/show")] [Route("api/show")]
[Route("api/shows")] [Route("api/shows")]
[ApiController] [ApiController]
public class ShowsApi : CrudApi<Show> public class ShowApi : CrudApi<Show>
{ {
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public ShowsApi(ILibraryManager libraryManager, IConfiguration configuration) public ShowApi(ILibraryManager libraryManager, IConfiguration configuration)
: base(libraryManager.ShowRepository, configuration) : base(libraryManager.ShowRepository, configuration)
{ {
_libraryManager = libraryManager; _libraryManager = libraryManager;

View File

@ -1,27 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Kyoo.Controllers;
using Kyoo.Models;
using Microsoft.AspNetCore.Mvc;
namespace Kyoo.Api
{
[Route("api/studios")]
[Route("api/studio")]
[ApiController]
public class StudioAPI : ControllerBase
{
private readonly ILibraryManager _libraryManager;
public StudioAPI(ILibraryManager libraryManager)
{
_libraryManager = libraryManager;
}
public async Task<ActionResult<IEnumerable<Studio>>> Index()
{
return (await _libraryManager.GetStudios()).ToList();
}
}
}

View File

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Kyoo.CommonApi;
using Kyoo.Controllers;
using Kyoo.Models;
using Kyoo.Models.Exceptions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace Kyoo.Api
{
[Route("api/studio")]
[Route("api/studios")]
[ApiController]
public class StudioAPI : CrudApi<Studio>
{
private readonly ILibraryManager _libraryManager;
public StudioAPI(ILibraryManager libraryManager, IConfiguration config)
: base(libraryManager.StudioRepository, config)
{
_libraryManager = libraryManager;
}
[HttpGet("{id:int}/show")]
[HttpGet("{id:int}/shows")]
[Authorize(Policy = "Read")]
public async Task<ActionResult<Page<Show>>> GetShows(int id,
[FromQuery] string sortBy,
[FromQuery] int afterID,
[FromQuery] Dictionary<string, string> where,
[FromQuery] int limit = 20)
{
where.Remove("sortBy");
where.Remove("limit");
where.Remove("afterID");
try
{
ICollection<Show> ressources = await _libraryManager.GetShows(
ApiHelper.ParseWhere<Show>(where, x => x.StudioID == id),
new Sort<Show>(sortBy),
new Pagination(limit, afterID));
return Page(ressources, limit);
}
catch (ItemNotFound)
{
return NotFound();
}
catch (ArgumentException ex)
{
return BadRequest(new {Error = ex.Message});
}
}
[HttpGet("{slug}/show")]
[HttpGet("{slug}/shows")]
[Authorize(Policy = "Read")]
public async Task<ActionResult<Page<Show>>> GetShows(string slug,
[FromQuery] string sortBy,
[FromQuery] int afterID,
[FromQuery] Dictionary<string, string> where,
[FromQuery] int limit = 20)
{
where.Remove("sortBy");
where.Remove("limit");
where.Remove("afterID");
try
{
ICollection<Show> ressources = await _libraryManager.GetShows(
ApiHelper.ParseWhere<Show>(where, x => x.Studio.Slug == slug),
new Sort<Show>(sortBy),
new Pagination(limit, afterID));
return Page(ressources, limit);
}
catch (ItemNotFound)
{
return NotFound();
}
catch (ArgumentException ex)
{
return BadRequest(new {Error = ex.Message});
}
}
}
}

@ -1 +1 @@
Subproject commit 7e8c74206356587b06272c5dd7c22fa09420d421 Subproject commit 9e7e7a1093d85f8e980b8115e0514166701cbd6b