refactor: replace GetPublishedVersions with GetPluginVersionsForDownload in download flow

This commit is contained in:
thgO.O
2025-07-29 23:03:17 -03:00
parent 739e1f5732
commit bacb6502a1
2 changed files with 13 additions and 5 deletions

View File

@@ -55,15 +55,13 @@ namespace BTCPayServer.Plugins
this.httpClient = httpClient;
}
static JsonSerializerSettings serializerSettings = new() { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() };
public async Task<PublishedVersion[]> GetPublishedVersions(string btcpayVersion, bool includePreRelease, string searchPluginName = null, string searchPluginIdentifier = null, bool? includeAllVersions = null)
public async Task<PublishedVersion[]> 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<PublishedVersion[]> 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<PublishedVersion[]>(result, serializerSettings)
?? throw new InvalidOperationException();
}
}
}

View File

@@ -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<AvailablePlugin>())
.Where(v => v is not null)