From 74ccb4ec528d5d5d7e3b06fb05060e1495f8927f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 15 Jan 2024 16:47:23 +0100 Subject: [PATCH] Always get quotes (with fallback to historical data) --- .../yahoo-finance/yahoo-finance.service.ts | 4 +++ .../exchange-rate-data.service.ts | 30 ++++++++----------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts index 0ef622c42..930e0c7f1 100644 --- a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts @@ -33,6 +33,10 @@ export class YahooFinanceDataEnhancerService implements DataEnhancerInterface { symbol = `${DEFAULT_CURRENCY}${symbol}`; } + if (symbol.includes(`${DEFAULT_CURRENCY}ZAC`)) { + symbol = `${DEFAULT_CURRENCY}ZAc`; + } + return symbol.replace('=X', ''); } diff --git a/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts b/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts index d180d8dd2..9f5130183 100644 --- a/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts +++ b/apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts @@ -136,24 +136,20 @@ export class ExchangeRateDataService { getYesterday() ); - if (Object.keys(result).length !== this.currencyPairs.length) { - // Load currencies directly from data provider as a fallback - // if historical data is not fully available - const quotes = await this.dataProviderService.getQuotes({ - items: this.currencyPairs.map(({ dataSource, symbol }) => { - return { dataSource, symbol }; - }), - requestTimeout: ms('30 seconds') - }); + const quotes = await this.dataProviderService.getQuotes({ + items: this.currencyPairs.map(({ dataSource, symbol }) => { + return { dataSource, symbol }; + }), + requestTimeout: ms('30 seconds') + }); - for (const symbol of Object.keys(quotes)) { - if (isNumber(quotes[symbol].marketPrice)) { - result[symbol] = { - [format(getYesterday(), DATE_FORMAT)]: { - marketPrice: quotes[symbol].marketPrice - } - }; - } + for (const symbol of Object.keys(quotes)) { + if (isNumber(quotes[symbol].marketPrice)) { + result[symbol] = { + [format(getYesterday(), DATE_FORMAT)]: { + marketPrice: quotes[symbol].marketPrice + } + }; } }