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