diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a304caf..b43328f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Print more useful diagnostics when there's a connectivity problem to a service (e.g. incorrect `base_url`). +- Regression that prevented basic validation of `base_url` & `api_key`. ## [6.0.2] - 2023-10-20 diff --git a/src/Recyclarr.Common/FluentValidation/IRuntimeValidationService.cs b/src/Recyclarr.Common/FluentValidation/IRuntimeValidationService.cs index 90a9a18a..478d8596 100644 --- a/src/Recyclarr.Common/FluentValidation/IRuntimeValidationService.cs +++ b/src/Recyclarr.Common/FluentValidation/IRuntimeValidationService.cs @@ -4,5 +4,5 @@ namespace Recyclarr.Common.FluentValidation; public interface IRuntimeValidationService { - ValidationResult Validate(object instance, params string[] ruleSets); + ValidationResult Validate(object instance, params string[] additionalRuleSets); } diff --git a/src/Recyclarr.Common/FluentValidation/RuntimeValidationService.cs b/src/Recyclarr.Common/FluentValidation/RuntimeValidationService.cs index 7c48c78a..5f2cf2e0 100644 --- a/src/Recyclarr.Common/FluentValidation/RuntimeValidationService.cs +++ b/src/Recyclarr.Common/FluentValidation/RuntimeValidationService.cs @@ -22,17 +22,15 @@ public class RuntimeValidationService : IRuntimeValidationService .ToDictionary(x => x.Item2!.GetGenericArguments()[0], x => x.Item1); } - public ValidationResult Validate(object instance, params string[] ruleSets) + public ValidationResult Validate(object instance, params string[] additionalRuleSets) { if (!_validators.TryGetValue(instance.GetType(), out var validator)) { throw new ValidationException($"No validator is available for type: {instance.GetType().FullName}"); } - IValidatorSelector validatorSelector = ruleSets.Length != 0 - ? new RulesetValidatorSelector(ruleSets) - : new DefaultValidatorSelector(); - + var validatorSelector = + new RulesetValidatorSelector([RulesetValidatorSelector.DefaultRuleSetName, ..additionalRuleSets]); return validator.Validate(new ValidationContext(instance, new PropertyChain(), validatorSelector)); } } diff --git a/src/Recyclarr.Config/Parsing/ConfigurationLoader.cs b/src/Recyclarr.Config/Parsing/ConfigurationLoader.cs index 7f3358fb..bcbb6d5a 100644 --- a/src/Recyclarr.Config/Parsing/ConfigurationLoader.cs +++ b/src/Recyclarr.Config/Parsing/ConfigurationLoader.cs @@ -45,7 +45,7 @@ public class ConfigurationLoader( log.Warning("Configuration is empty"); } - if (!validator.Validate(config)) + if (!validator.Validate(config, YamlValidatorRuleSets.RootConfig)) { return Array.Empty(); }