From f14959e6ab75a88b4422e5ff975e9e70770f5c4d Mon Sep 17 00:00:00 2001 From: Daniel Devaud Date: Thu, 31 Aug 2023 09:42:56 +0200 Subject: [PATCH 1/3] Better trackinsight inaccuracy handling --- .../trackinsight/trackinsight.service.ts | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) 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 07c0234b6..7a8622932 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 @@ -3,6 +3,7 @@ import { Country } from '@ghostfolio/common/interfaces/country.interface'; import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; import { Injectable } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; +import { Min } from 'class-validator'; import got from 'got'; @Injectable() @@ -26,9 +27,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { response: Partial; symbol: string; }): Promise> { - if ( - !(response.assetClass === 'EQUITY' && response.assetSubClass === 'ETF') - ) { + if (!(response.assetSubClass === 'ETF')) { return response; } @@ -38,9 +37,9 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { .json() .catch(() => { return got( - `${TrackinsightDataEnhancerService.baseUrl}/funds/${symbol.split( - '.' - )?.[0]}.json` + `${TrackinsightDataEnhancerService.baseUrl}/funds/${ + symbol.split('.')?.[0] + }.json` ) .json() .catch(() => { @@ -60,9 +59,9 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { .json() .catch(() => { return got( - `${TrackinsightDataEnhancerService.baseUrl}/holdings/${symbol.split( - '.' - )?.[0]}.json` + `${TrackinsightDataEnhancerService.baseUrl}/holdings/${ + symbol.split('.')?.[0] + }.json` ) .json() .catch(() => { @@ -70,8 +69,8 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { }); }); - if (holdings?.weight < 0.95) { - // Skip if data is inaccurate + if (holdings?.weight < 1 - Math.min(holdings?.count * 0.000015, 0.95)) { + // Skip if data is inaccurate, dependent on holdings count there might be rounding issues return response; } From 5cd36caf18b431af1d93975478b2dad632a07cbe Mon Sep 17 00:00:00 2001 From: Daniel Devaud Date: Thu, 31 Aug 2023 09:44:14 +0200 Subject: [PATCH 2/3] Remove unused import --- .../data-enhancer/trackinsight/trackinsight.service.ts | 1 - 1 file changed, 1 deletion(-) 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 7a8622932..23f01c6d1 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 @@ -3,7 +3,6 @@ import { Country } from '@ghostfolio/common/interfaces/country.interface'; import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; import { Injectable } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; -import { Min } from 'class-validator'; import got from 'got'; @Injectable() From 29bdbf3451680a5f2cd0c2f483ac0e4fadd0912c Mon Sep 17 00:00:00 2001 From: Daniel Devaud Date: Thu, 31 Aug 2023 09:49:37 +0200 Subject: [PATCH 3/3] Fix Format --- .../trackinsight/trackinsight.service.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 23f01c6d1..4af93a2cb 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 @@ -36,9 +36,9 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { .json() .catch(() => { return got( - `${TrackinsightDataEnhancerService.baseUrl}/funds/${ - symbol.split('.')?.[0] - }.json` + `${TrackinsightDataEnhancerService.baseUrl}/funds/${symbol.split( + '.' + )?.[0]}.json` ) .json() .catch(() => { @@ -58,9 +58,9 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { .json() .catch(() => { return got( - `${TrackinsightDataEnhancerService.baseUrl}/holdings/${ - symbol.split('.')?.[0] - }.json` + `${TrackinsightDataEnhancerService.baseUrl}/holdings/${symbol.split( + '.' + )?.[0]}.json` ) .json() .catch(() => {