From 9995572314f0b2e9d253095fcdda9900311c586a Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Mon, 11 Sep 2023 08:00:17 -0500 Subject: [PATCH] fix: Propagate base_url and api_key when processing includes --- .../ImplicitUrlAndKeyPostProcessor.cs | 13 +------------ .../Parsing/PostProcessing/IncludePostProcessor.cs | 3 +++ .../IncludePostProcessorIntegrationTest.cs | 5 +++++ 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessor.cs b/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessor.cs index 752e70de..5b2faac3 100644 --- a/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessor.cs +++ b/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessor.cs @@ -25,18 +25,7 @@ public class ImplicitUrlAndKeyPostProcessor : IConfigPostProcessor private IReadOnlyDictionary? ProcessService(IReadOnlyDictionary? services) where T : ServiceConfigYaml { - if (services is null) - { - return null; - } - - var updatedServices = new Dictionary(); - foreach (var (name, service) in services) - { - updatedServices.Add(name, FillUrlAndKey(name, service)); - } - - return updatedServices; + return services?.ToDictionary(x => x.Key, x => FillUrlAndKey(x.Key, x.Value)); } private T FillUrlAndKey(string instanceName, T config) diff --git a/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/IncludePostProcessor.cs b/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/IncludePostProcessor.cs index ee4d8f8e..e10773dd 100644 --- a/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/IncludePostProcessor.cs +++ b/src/Recyclarr.TrashLib.Config/Parsing/PostProcessing/IncludePostProcessor.cs @@ -60,6 +60,9 @@ public class IncludePostProcessor : IConfigPostProcessor // Merge the config into the aggregated includes so that root config values overwrite included values. mergedConfigs.Add(key, merger.Merge(aggregateInclude, config) with { + BaseUrl = config.BaseUrl, + ApiKey = config.ApiKey, + // No reason to keep these around anymore now that they have been merged Include = null }); diff --git a/src/tests/Recyclarr.TrashLib.Config.Tests/Parsing/PostProcessing/IncludePostProcessorIntegrationTest.cs b/src/tests/Recyclarr.TrashLib.Config.Tests/Parsing/PostProcessing/IncludePostProcessorIntegrationTest.cs index 802096e5..be66e5e0 100644 --- a/src/tests/Recyclarr.TrashLib.Config.Tests/Parsing/PostProcessing/IncludePostProcessorIntegrationTest.cs +++ b/src/tests/Recyclarr.TrashLib.Config.Tests/Parsing/PostProcessing/IncludePostProcessorIntegrationTest.cs @@ -129,6 +129,8 @@ public class IncludePostProcessorIntegrationTest : ConfigIntegrationFixture { ["service1"] = new() { + BaseUrl = "the_base_url", + ApiKey = "the_api_key", CustomFormats = new[] { new CustomFormatConfigYaml @@ -157,6 +159,9 @@ public class IncludePostProcessorIntegrationTest : ConfigIntegrationFixture { ["service1"] = new() { + BaseUrl = "the_base_url", + ApiKey = "the_api_key", + Include = null, CustomFormats = new[] { new CustomFormatConfigYaml {TrashIds = new[] {"496f355514737f7d83bf7aa4d24f8169"}},