diff --git a/CHANGELOG.md b/CHANGELOG.md index abde9afc7..f32303410 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for the _Fear & Greed Index_ (market mood) - Improved the language localization for German (`de`) +### Fixed + +- Improved the handling of derived currencies (`GBp`, `ILA`, `ZAc`) + ## 2.18.0 - 2023-11-05 ### Added 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 376aa1a6a..cf61786c9 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 @@ -95,6 +95,30 @@ export class ExchangeRateDataService { const [currency1, currency2] = symbol.match(/.{1,3}/g); const [date] = Object.keys(result[symbol]); + // Add derived currencies + if (currency2 === 'GBP') { + resultExtended[`${currency1}GBp`] = { + [date]: { + marketPrice: + result[`${currency1}${currency2}`][date].marketPrice * 100 + } + }; + } else if (currency2 === 'ILS') { + resultExtended[`${currency1}ILA`] = { + [date]: { + marketPrice: + result[`${currency1}${currency2}`][date].marketPrice * 100 + } + }; + } else if (currency2 === 'ZAR') { + resultExtended[`${currency1}ZAc`] = { + [date]: { + marketPrice: + result[`${currency1}${currency2}`][date].marketPrice * 100 + } + }; + } + // Calculate the opposite direction resultExtended[`${currency2}${currency1}`] = { [date]: {