Add PriceFetcher API to fetch prices of multiple currencies

This commit is contained in:
2024-11-10 08:35:08 +01:00
parent 6e8ef69136
commit 9faaa24e8d
6 changed files with 129 additions and 2 deletions

View File

@@ -14,6 +14,19 @@ import Foundation
/// Fake price fetcher that returns a randomized price. Useful for development testing without requiring a network call.
class FakePriceFetcher: PriceFetcher {
func convertBTC(toCurrency currency: Locale.Currency) async throws -> Decimal? {
randomPrice()
}
func convertBTC(toCurrencies currencies: [Locale.Currency]) async throws -> [Locale.Currency : Decimal] {
guard !currencies.isEmpty else {
return [:]
}
let prices = currencies.map { _ in randomPrice() }
return Dictionary(uniqueKeysWithValues: zip(currencies, prices))
}
private func randomPrice() -> Decimal {
Decimal(Double.random(in: 10000...100000))
}
}