Skip to content

Commit

Permalink
Improved Trakt list validation
Browse files Browse the repository at this point in the history
Fixes #5262

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
  • Loading branch information
Qstick and markus101 committed Oct 30, 2020
1 parent a03d136 commit 4501119
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/NzbDrone.Core/ImportLists/HttpImportListBase.cs
Expand Up @@ -13,6 +13,7 @@
using NzbDrone.Core.Indexers.Exceptions;
using NzbDrone.Core.Parser;
using NzbDrone.Core.ThingiProvider;
using NzbDrone.Core.Validation;

namespace NzbDrone.Core.ImportLists
{
Expand Down Expand Up @@ -187,7 +188,9 @@ protected virtual ValidationFailure TestConnection()

if (releases.Empty())
{
return new ValidationFailure(string.Empty, "No results were returned from your list, please check your settings.");
return new NzbDroneValidationFailure(string.Empty,
"No results were returned from your import list, please check your settings.")
{ IsWarning = true };
}
}
catch (RequestLimitReachedException)
Expand Down
2 changes: 2 additions & 0 deletions src/NzbDrone.Core/ImportLists/Trakt/List/TraktListSettings.cs
Expand Up @@ -8,6 +8,8 @@ public class TraktListSettingsValidator : TraktSettingsBaseValidator<TraktListSe
public TraktListSettingsValidator()
: base()
{
RuleFor(c => c.Username).NotEmpty();
RuleFor(c => c.Listname).NotEmpty();
}
}

Expand Down
17 changes: 14 additions & 3 deletions src/NzbDrone.Core/ImportLists/Trakt/TraktSettingsBase.cs
Expand Up @@ -14,9 +14,20 @@ public class TraktSettingsBaseValidator<TSettings> : AbstractValidator<TSettings
public TraktSettingsBaseValidator()
{
RuleFor(c => c.Link).ValidRootUrl();
RuleFor(c => c.AccessToken).NotEmpty();
RuleFor(c => c.RefreshToken).NotEmpty();
RuleFor(c => c.Expires).NotEmpty();

RuleFor(c => c.AccessToken).NotEmpty()
.OverridePropertyName("SignIn")
.WithMessage("Must authenticate with Trakt");

RuleFor(c => c.RefreshToken).NotEmpty()
.OverridePropertyName("SignIn")
.WithMessage("Must authenticate with Trakt")
.When(c => c.AccessToken.IsNotNullOrWhiteSpace());

RuleFor(c => c.Expires).NotEmpty()
.OverridePropertyName("SignIn")
.WithMessage("Must authenticate with Trakt")
.When(c => c.AccessToken.IsNotNullOrWhiteSpace() && c.RefreshToken.IsNotNullOrWhiteSpace());

// Loose validation @TODO
RuleFor(c => c.Rating)
Expand Down

0 comments on commit 4501119

Please sign in to comment.