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));
}
}