From 1050bfa098c96c6d557118a79ec3d3bf7755bb11 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 2 Oct 2021 10:28:06 +0200 Subject: [PATCH] Feature/improve yahoo finance symbol conversion (#402) * Improve symbol conversion * Update changelog --- CHANGELOG.md | 1 + .../yahoo-finance/yahoo-finance.service.ts | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0db7d2a6..0a551c83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the symbol conversion for _Yahoo Finance_: Support for _Solana USD_ (`SOL1-USD`) - Upgraded `envalid` from version `7.1.0` to `7.2.1` ## 1.57.0 - 29.09.2021 diff --git a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts index a4408abd..25624c6a 100644 --- a/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts @@ -256,18 +256,19 @@ export const convertFromYahooFinanceSymbol = (aYahooFinanceSymbol: string) => { /** * Converts a symbol to a Yahoo Finance symbol * - * Currency: USDCHF=X - * Cryptocurrency: BTC-USD + * Currency: USDCHF -> USDCHF=X + * Cryptocurrency: BTCUSD -> BTC-USD + * DOGEUSD -> DOGE-USD + * SOL1USD -> SOL1-USD */ export const convertToYahooFinanceSymbol = (aSymbol: string) => { if (isCurrency(aSymbol)) { - if (isCrypto(aSymbol)) { + if (isCrypto(aSymbol) || isCrypto(aSymbol.replace('1', ''))) { // Add a dash before the last three characters // BTCUSD -> BTC-USD // DOGEUSD -> DOGE-USD - return `${aSymbol.substring(0, aSymbol.length - 3)}-${aSymbol.substring( - aSymbol.length - 3 - )}`; + // SOL1USD -> SOL1-USD + return aSymbol.replace('USD', '-USD'); } return `${aSymbol}=X`;