mirror of
https://github.com/Radarr/Radarr.git
synced 2026-04-16 21:15:33 -04:00
New: Add Download Client validation for indexers
(cherry picked from commit e53b7f8c945e3597ca1719961e82540f1f01f0e9) Closes #9338
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
using FluentValidation.Validators;
|
||||
using NzbDrone.Core.Download;
|
||||
|
||||
namespace NzbDrone.Core.Validation
|
||||
{
|
||||
public class DownloadClientExistsValidator : PropertyValidator
|
||||
{
|
||||
private readonly IDownloadClientFactory _downloadClientFactory;
|
||||
|
||||
public DownloadClientExistsValidator(IDownloadClientFactory downloadClientFactory)
|
||||
{
|
||||
_downloadClientFactory = downloadClientFactory;
|
||||
}
|
||||
|
||||
protected override string GetDefaultMessageTemplate() => "Download Client does not exist";
|
||||
|
||||
protected override bool IsValid(PropertyValidatorContext context)
|
||||
{
|
||||
if (context?.PropertyValue == null || (int)context.PropertyValue == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return _downloadClientFactory.Exists((int)context.PropertyValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using NzbDrone.Core.Indexers;
|
||||
using NzbDrone.Core.Validation;
|
||||
using Radarr.Http;
|
||||
|
||||
namespace Radarr.Api.V3.Indexers
|
||||
@@ -9,9 +10,10 @@ namespace Radarr.Api.V3.Indexers
|
||||
public static readonly IndexerResourceMapper ResourceMapper = new ();
|
||||
public static readonly IndexerBulkResourceMapper BulkResourceMapper = new ();
|
||||
|
||||
public IndexerController(IndexerFactory indexerFactory)
|
||||
public IndexerController(IndexerFactory indexerFactory, DownloadClientExistsValidator downloadClientExistsValidator)
|
||||
: base(indexerFactory, "indexer", ResourceMapper, BulkResourceMapper)
|
||||
{
|
||||
SharedValidator.RuleFor(c => c.DownloadClientId).SetValidator(downloadClientExistsValidator);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user