From bacb6502a162d40c7918b8322671ce4debf7f6e7 Mon Sep 17 00:00:00 2001 From: "thgO.O" Date: Tue, 29 Jul 2025 23:03:17 -0300 Subject: [PATCH] refactor: replace GetPublishedVersions with GetPluginVersionsForDownload in download flow --- BTCPayServer/Plugins/PluginBuilderClient.cs | 14 +++++++++++--- BTCPayServer/Plugins/PluginService.cs | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/BTCPayServer/Plugins/PluginBuilderClient.cs b/BTCPayServer/Plugins/PluginBuilderClient.cs index 0a249789b..d6b4be831 100644 --- a/BTCPayServer/Plugins/PluginBuilderClient.cs +++ b/BTCPayServer/Plugins/PluginBuilderClient.cs @@ -55,15 +55,13 @@ namespace BTCPayServer.Plugins this.httpClient = httpClient; } static JsonSerializerSettings serializerSettings = new() { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() }; - public async Task GetPublishedVersions(string btcpayVersion, bool includePreRelease, string searchPluginName = null, string searchPluginIdentifier = null, bool? includeAllVersions = null) + public async Task GetPublishedVersions(string btcpayVersion, bool includePreRelease, string searchPluginName = null, bool? includeAllVersions = null) { var queryString = $"?includePreRelease={includePreRelease}"; if (btcpayVersion is not null) queryString += $"&btcpayVersion={btcpayVersion}"; if (searchPluginName is not null) queryString += $"&searchPluginName={searchPluginName}"; - if (searchPluginIdentifier is not null) - queryString += $"&searchPluginIdentifier={searchPluginIdentifier}"; if (includeAllVersions is not null) queryString += $"&includeAllVersions={includeAllVersions}"; var result = await httpClient.GetStringAsync($"api/v1/plugins{queryString}"); @@ -81,5 +79,15 @@ namespace BTCPayServer.Plugins return null; } } + + public async Task GetPluginVersionsForDownload(string identifier, string btcpayVersion, bool includePreRelease = false, bool includeAllVersions = false) + { + var queryString = $"?btcpayVersion={btcpayVersion}&includePreRelease={includePreRelease}&includeAllVersions={includeAllVersions}"; + var url = $"api/v1/plugins/{identifier}{queryString}"; + + var result = await httpClient.GetStringAsync(url); + return JsonConvert.DeserializeObject(result, serializerSettings) + ?? throw new InvalidOperationException(); + } } } diff --git a/BTCPayServer/Plugins/PluginService.cs b/BTCPayServer/Plugins/PluginService.cs index 1fba43e09..49c56c6d5 100644 --- a/BTCPayServer/Plugins/PluginService.cs +++ b/BTCPayServer/Plugins/PluginService.cs @@ -75,8 +75,8 @@ namespace BTCPayServer.Plugins if (version is null) { string btcpayVersion = Env.Version.TrimStart('v').Split('+')[0]; - var versions = await _pluginBuilderClient.GetPublishedVersions( - btcpayVersion, _policiesSettings.PluginPreReleases, searchPluginIdentifier: pluginIdentifier, includeAllVersions: true); + var versions = await _pluginBuilderClient.GetPluginVersionsForDownload(pluginIdentifier, + btcpayVersion, _policiesSettings.PluginPreReleases, includeAllVersions: true); var potentialVersions = versions .Select(v => v.ManifestInfo?.ToObject()) .Where(v => v is not null)