using System.Collections.Generic; using FluentValidation; using Lidarr.Http; using Lidarr.Http.REST; using Lidarr.Http.REST.Attributes; using Microsoft.AspNetCore.Mvc; using NzbDrone.Core.ImportLists.Exclusions; using NzbDrone.Core.Validation; namespace Lidarr.Api.V1.ImportLists { [V1ApiController] public class ImportListExclusionController : RestController { private readonly IImportListExclusionService _importListExclusionService; public ImportListExclusionController(IImportListExclusionService importListExclusionService, ImportListExclusionExistsValidator importListExclusionExistsValidator, GuidValidator guidValidator) { _importListExclusionService = importListExclusionService; SharedValidator.RuleFor(c => c.ForeignId).NotEmpty().SetValidator(guidValidator).SetValidator(importListExclusionExistsValidator); SharedValidator.RuleFor(c => c.ArtistName).NotEmpty(); } public override ImportListExclusionResource GetResourceById(int id) { return _importListExclusionService.Get(id).ToResource(); } [HttpGet] public List GetImportListExclusions() { return _importListExclusionService.All().ToResource(); } [RestPostById] public ActionResult AddImportListExclusion(ImportListExclusionResource resource) { var customFilter = _importListExclusionService.Add(resource.ToModel()); return Created(customFilter.Id); } [RestPutById] public ActionResult UpdateImportListExclusion(ImportListExclusionResource resource) { _importListExclusionService.Update(resource.ToModel()); return Accepted(resource.Id); } [RestDeleteById] public void DeleteImportListExclusionResource(int id) { _importListExclusionService.Delete(id); } } }