diff --git a/src/server/api/services/currencyRateService.ts b/src/server/api/services/currencyRateService.ts index 0b119742..8c2449cd 100644 --- a/src/server/api/services/currencyRateService.ts +++ b/src/server/api/services/currencyRateService.ts @@ -122,15 +122,16 @@ class FrankfurterProvider extends CurrencyRateProvider { providerName = 'frankfurter'; async fetchRates(from: CurrencyCode, to: CurrencyCode, date?: Date): Promise { - const key = !date || isToday(date) ? 'latest' : format(date, 'yyyy-MM-dd'); + const url = new URL(`https://api.frankfurter.dev/v2/rate/${from}/${to}`); + if (date && !isToday(date)) { + url.searchParams.append('date', format(date, 'yyyy-MM-dd')); + } - const response = await fetch( - `https://api.frankfurter.dev/v1/${key}?base=${from}&symbols=${to}`, - ); - const data: RateResponse = await response.json(); + const response = await fetch(url.toString()); + const { base, quote, rate } = await response.json(); if (response.ok) { - return data; + return { base, rates: { [quote]: rate } }; } throw new Error(response.statusText || 'Failed to fetch exchange rates');