From 3c68ce286c7dca117dc4350e91e8715baea651c0 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:41:21 +0200 Subject: [PATCH] Task/improve country mapping for data providers (#7137) * Improve country mapping * Update changelog --- CHANGELOG.md | 1 + apps/api/src/helper/country.helper.ts | 6 +++++- .../data-enhancer/trackinsight/trackinsight.service.ts | 7 +++++-- .../financial-modeling-prep.service.ts | 6 +++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 427eec292..596756d18 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 country mapping for data providers - Upgraded `bull-board` from version `7.2.1` to `8.0.1` - Upgraded `prettier` from version `3.8.3` to `3.8.4` diff --git a/apps/api/src/helper/country.helper.ts b/apps/api/src/helper/country.helper.ts index 9d14d8778..1d9f8f99a 100644 --- a/apps/api/src/helper/country.helper.ts +++ b/apps/api/src/helper/country.helper.ts @@ -7,8 +7,12 @@ export function getCountryCodeByName({ aliases?: Record; name: string; }): string { + if (aliases[name]) { + return aliases[name]; + } + for (const [code, country] of Object.entries(countries)) { - if (country.name === name || country.name === aliases[name]) { + if (country.name === name) { return code; } } diff --git a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts index c8291a901..9f69dc39b 100644 --- a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts @@ -15,8 +15,11 @@ import { SymbolProfile } from '@prisma/client'; export class TrackinsightDataEnhancerService implements DataEnhancerInterface { private static baseUrl = 'https://www.trackinsight.com/data-api'; private static countriesMapping = { - 'Russian Federation': 'Russia', - USA: 'United States' + 'Republic of Korea': 'KR', + 'Russian Federation': 'RU', + Turkey: 'TR', + USA: 'US', + 'Virgin Islands, British': 'VG' }; private static holdingsWeightTreshold = 0.85; private static sectorsMapping: Record = { diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index ca48bb247..ec4aa39c0 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -54,9 +54,9 @@ export class FinancialModelingPrepService implements DataProviderInterface, OnModuleInit { private static countriesMapping = { - 'Korea (the Republic of)': 'South Korea', - 'Russian Federation': 'Russia', - 'Taiwan (Province of China)': 'Taiwan' + 'Korea (the Republic of)': 'KR', + 'Russian Federation': 'RU', + 'Taiwan (Province of China)': 'TW' }; private readonly logger = new Logger(FinancialModelingPrepService.name);