From f054c8102d0a4253e858ece02ada26b5f5197655 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Tue, 24 Aug 2021 21:02:15 +0200 Subject: [PATCH] Add fallback for loading currencies --- .../services/exchange-rate-data.service.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/api/src/services/exchange-rate-data.service.ts b/apps/api/src/services/exchange-rate-data.service.ts index afb6ea122..a2617647f 100644 --- a/apps/api/src/services/exchange-rate-data.service.ts +++ b/apps/api/src/services/exchange-rate-data.service.ts @@ -3,7 +3,7 @@ import { DATE_FORMAT, getYesterday } from '@ghostfolio/common/helper'; import { Injectable } from '@nestjs/common'; import { Currency } from '@prisma/client'; import { format } from 'date-fns'; -import { isNumber } from 'lodash'; +import { isEmpty, isNumber } from 'lodash'; import { DataProviderService } from './data-provider/data-provider.service'; @@ -35,6 +35,24 @@ export class ExchangeRateDataService { getYesterday() ); + if (isEmpty(result)) { + // Load currencies directly from data provider as a fallback + // if historical data is not yet available + const historicalData = await this.dataProviderService.get( + this.currencyPairs.map((currencyPair) => { + return currencyPair; + }) + ); + + Object.keys(historicalData).forEach((key) => { + result[key] = { + [format(getYesterday(), DATE_FORMAT)]: { + marketPrice: historicalData[key].marketPrice + } + }; + }); + } + const resultExtended = result; Object.keys(result).forEach((pair) => {