From 0ba1cb0b5114024e4f9d8bb4e09eef95a09bbc93 Mon Sep 17 00:00:00 2001 From: Alexander Linder Date: Sat, 27 Jun 2026 16:36:22 +0200 Subject: [PATCH] Make trackinsight URL configurable --- .../services/configuration/configuration.service.ts | 1 + .../trackinsight/trackinsight.service.ts | 11 +++++++---- .../src/services/interfaces/environment.interface.ts | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/api/src/services/configuration/configuration.service.ts b/apps/api/src/services/configuration/configuration.service.ts index 703a90c3a..cbc6e3bb8 100644 --- a/apps/api/src/services/configuration/configuration.service.ts +++ b/apps/api/src/services/configuration/configuration.service.ts @@ -108,6 +108,7 @@ export class ConfigurationService { default: environment.rootUrl }), STRIPE_SECRET_KEY: str({ default: '' }), + TRACKINSIGHT_BASE_URL: url({ default: 'https://www.trackinsight.com' }), TWITTER_ACCESS_TOKEN: str({ default: 'dummyAccessToken' }), TWITTER_ACCESS_TOKEN_SECRET: str({ default: 'dummyAccessTokenSecret' }), TWITTER_API_KEY: str({ default: 'dummyApiKey' }), 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 9f69dc39b..f3d3cefff 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 @@ -13,7 +13,6 @@ import { SymbolProfile } from '@prisma/client'; @Injectable() export class TrackinsightDataEnhancerService implements DataEnhancerInterface { - private static baseUrl = 'https://www.trackinsight.com/data-api'; private static countriesMapping = { 'Republic of Korea': 'KR', 'Russian Federation': 'RU', @@ -38,6 +37,10 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { private readonly fetchService: FetchService ) {} + private get baseUrl() { + return this.configurationService.get('TRACKINSIGHT_BASE_URL'); + } + public async enhance({ requestTimeout = this.configurationService.get('REQUEST_TIMEOUT'), response, @@ -74,7 +77,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { const profile = await this.fetchService .fetch( - `${TrackinsightDataEnhancerService.baseUrl}/funds/${trackinsightSymbol}.json`, + `${this.baseUrl}/data-api/funds/${trackinsightSymbol}.json`, { signal: AbortSignal.timeout(requestTimeout) } @@ -98,7 +101,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { const holdings = await this.fetchService .fetch( - `${TrackinsightDataEnhancerService.baseUrl}/holdings/${trackinsightSymbol}.json`, + `${this.baseUrl}/data-api/holdings/${trackinsightSymbol}.json`, { signal: AbortSignal.timeout(requestTimeout) } @@ -191,7 +194,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { }) { return this.fetchService .fetch( - `https://www.trackinsight.com/search-api/search_v2/${symbol}/_/ticker/default/0/3`, + `${this.baseUrl}/search-api/search_v2/${symbol}/_/ticker/default/0/3`, { signal: AbortSignal.timeout(requestTimeout) } diff --git a/apps/api/src/services/interfaces/environment.interface.ts b/apps/api/src/services/interfaces/environment.interface.ts index 11bdeabf6..60ded5b1a 100644 --- a/apps/api/src/services/interfaces/environment.interface.ts +++ b/apps/api/src/services/interfaces/environment.interface.ts @@ -55,6 +55,7 @@ export interface Environment extends CleanedEnvAccessors { REQUEST_TIMEOUT: number; ROOT_URL: string; STRIPE_SECRET_KEY: string; + TRACKINSIGHT_BASE_URL: string; TWITTER_ACCESS_TOKEN: string; TWITTER_ACCESS_TOKEN_SECRET: string; TWITTER_API_KEY: string;