using System.Collections.Generic; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using BTCPayServer.Client.Models; namespace BTCPayServer.Client; public partial class BTCPayServerClient { public virtual async Task GetStoreRateConfiguration(string storeId, CancellationToken token = default) { return await SendHttpRequest($"api/v1/stores/{storeId}/rates/configuration", null, HttpMethod.Get, token); } public virtual async Task> GetRateSources(CancellationToken token = default) { return await SendHttpRequest>("misc/rate-sources", null, HttpMethod.Get, token); } public virtual async Task UpdateStoreRateConfiguration(string storeId, StoreRateConfiguration request, CancellationToken token = default) { return await SendHttpRequest($"api/v1/stores/{storeId}/rates/configuration", request, HttpMethod.Put, token); } public virtual async Task> PreviewUpdateStoreRateConfiguration(string storeId, StoreRateConfiguration request, string[] currencyPair = null, CancellationToken token = default) { var queryPayload = currencyPair == null ? null : new Dictionary { { "currencyPair", currencyPair } }; return await SendHttpRequest>($"api/v1/stores/{storeId}/rates/configuration/preview", queryPayload, request, HttpMethod.Post, token); } public virtual async Task> GetStoreRates(string storeId, string[] currencyPair = null, CancellationToken token = default) { var queryPayload = currencyPair == null ? null : new Dictionary { { "currencyPair", currencyPair } }; return await SendHttpRequest>($"api/v1/stores/{storeId}/rates", queryPayload, HttpMethod.Get, token); } }