Skip to content

Commit

Permalink
New: Add Download Client validation for indexers
Browse files Browse the repository at this point in the history
(cherry picked from commit e53b7f8c945e3597ca1719961e82540f1f01f0e9)

Closes #3033
  • Loading branch information
mynameisbogdan committed Oct 28, 2023
1 parent c3c5a47 commit 2af3314
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
27 changes: 27 additions & 0 deletions src/NzbDrone.Core/Validation/DownloadClientExistsValidator.cs
@@ -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);
}
}
}
4 changes: 3 additions & 1 deletion src/Readarr.Api.V1/Indexers/IndexerController.cs
@@ -1,4 +1,5 @@
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Validation;
using Readarr.Http;

namespace Readarr.Api.V1.Indexers
Expand All @@ -9,9 +10,10 @@ public class IndexerController : ProviderControllerBase<IndexerResource, Indexer
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);
}
}
}

0 comments on commit 2af3314

Please sign in to comment.