From 19023fbaf5b66699cbc16e70c651da5b0caedbdf Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 27 Sep 2021 21:08:03 +0200 Subject: [PATCH] API: Documenting the providers API --- .../Views/{ => Metadata}/ProviderApi.cs | 52 ++++++++----------- .../Views/{ => Metadata}/StudioApi.cs | 0 2 files changed, 21 insertions(+), 31 deletions(-) rename src/Kyoo.Core/Views/{ => Metadata}/ProviderApi.cs (54%) rename src/Kyoo.Core/Views/{ => Metadata}/StudioApi.cs (100%) diff --git a/src/Kyoo.Core/Views/ProviderApi.cs b/src/Kyoo.Core/Views/Metadata/ProviderApi.cs similarity index 54% rename from src/Kyoo.Core/Views/ProviderApi.cs rename to src/Kyoo.Core/Views/Metadata/ProviderApi.cs index 0ba3244a..1150214d 100644 --- a/src/Kyoo.Core/Views/ProviderApi.cs +++ b/src/Kyoo.Core/Views/Metadata/ProviderApi.cs @@ -16,50 +16,40 @@ // You should have received a copy of the GNU General Public License // along with Kyoo. If not, see . -using System.Threading.Tasks; using Kyoo.Abstractions.Controllers; using Kyoo.Abstractions.Models; +using Kyoo.Abstractions.Models.Attributes; using Kyoo.Abstractions.Models.Permissions; using Microsoft.AspNetCore.Mvc; +using static Kyoo.Abstractions.Models.Utils.Constants; namespace Kyoo.Core.Api { - [Route("api/provider")] + /// + /// Information about one or multiple . + /// Providers are links to external websites or database. + /// They are mostly linked to plugins that provide metadata from those websites. + /// [Route("api/providers")] + [Route("api/provider", Order = AlternativeRoute)] [ApiController] + [ResourceView] [PartialPermission(nameof(ProviderApi))] - public class ProviderApi : CrudApi + [ApiDefinition("Providers", Group = MetadataGroup)] + public class ProviderApi : CrudThumbsApi { - private readonly IThumbnailsManager _thumbnails; - private readonly ILibraryManager _libraryManager; - private readonly IFileSystem _files; - + /// + /// Create a new . + /// + /// + /// The library manager used to modify or retrieve information about the data store. + /// + /// The file manager used to send images and fonts. + /// The thumbnail manager used to retrieve images paths. public ProviderApi(ILibraryManager libraryManager, IFileSystem files, IThumbnailsManager thumbnails) - : base(libraryManager.ProviderRepository) - { - _libraryManager = libraryManager; - _files = files; - _thumbnails = thumbnails; - } - - [HttpGet("{id:int}/logo")] - public async Task GetLogo(int id) - { - Provider provider = await _libraryManager.GetOrDefault(id); - if (provider == null) - return NotFound(); - return _files.FileResult(await _thumbnails.GetImagePath(provider, Images.Logo)); - } - - [HttpGet("{slug}/logo")] - public async Task GetLogo(string slug) - { - Provider provider = await _libraryManager.GetOrDefault(slug); - if (provider == null) - return NotFound(); - return _files.FileResult(await _thumbnails.GetImagePath(provider, Images.Logo)); - } + : base(libraryManager.ProviderRepository, files, thumbnails) + { } } } diff --git a/src/Kyoo.Core/Views/StudioApi.cs b/src/Kyoo.Core/Views/Metadata/StudioApi.cs similarity index 100% rename from src/Kyoo.Core/Views/StudioApi.cs rename to src/Kyoo.Core/Views/Metadata/StudioApi.cs