Browse Source

Always get quotes (with fallback to historical data)

pull/2875/head
Thomas Kaul 2 years ago
parent
commit
74ccb4ec52
  1. 4
      apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts
  2. 30
      apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts

4
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}`; symbol = `${DEFAULT_CURRENCY}${symbol}`;
} }
if (symbol.includes(`${DEFAULT_CURRENCY}ZAC`)) {
symbol = `${DEFAULT_CURRENCY}ZAc`;
}
return symbol.replace('=X', ''); return symbol.replace('=X', '');
} }

30
apps/api/src/services/exchange-rate-data/exchange-rate-data.service.ts

@ -136,24 +136,20 @@ export class ExchangeRateDataService {
getYesterday() getYesterday()
); );
if (Object.keys(result).length !== this.currencyPairs.length) { const quotes = await this.dataProviderService.getQuotes({
// Load currencies directly from data provider as a fallback items: this.currencyPairs.map(({ dataSource, symbol }) => {
// if historical data is not fully available return { dataSource, symbol };
const quotes = await this.dataProviderService.getQuotes({ }),
items: this.currencyPairs.map(({ dataSource, symbol }) => { requestTimeout: ms('30 seconds')
return { dataSource, symbol }; });
}),
requestTimeout: ms('30 seconds')
});
for (const symbol of Object.keys(quotes)) { for (const symbol of Object.keys(quotes)) {
if (isNumber(quotes[symbol].marketPrice)) { if (isNumber(quotes[symbol].marketPrice)) {
result[symbol] = { result[symbol] = {
[format(getYesterday(), DATE_FORMAT)]: { [format(getYesterday(), DATE_FORMAT)]: {
marketPrice: quotes[symbol].marketPrice marketPrice: quotes[symbol].marketPrice
} }
}; };
}
} }
} }

Loading…
Cancel
Save