using System; using System.Collections.Generic; using System.Threading.Tasks; using API.Data; using API.DTOs; using API.DTOs.KavitaPlus.Manage; using API.Services.Plus; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace API.Controllers; /// /// All things centered around Managing the Kavita instance, that isn't aligned with an entity /// [Authorize("RequireAdminRole")] public class ManageController : BaseApiController { private readonly IUnitOfWork _unitOfWork; private readonly ILicenseService _licenseService; public ManageController(IUnitOfWork unitOfWork, ILicenseService licenseService) { _unitOfWork = unitOfWork; _licenseService = licenseService; } /// /// Returns a list of all Series that is Kavita+ applicable to metadata match and the status of it /// /// [Authorize("RequireAdminRole")] [HttpPost("series-metadata")] public async Task>> SeriesMetadata(ManageMatchFilterDto filter) { if (!await _licenseService.HasActiveLicense()) return Ok(Array.Empty()); return Ok(await _unitOfWork.ExternalSeriesMetadataRepository.GetAllSeries(filter)); } }