From 9f9346a543ce4786d35cc17848bc6773c1226a5c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 18 Feb 2026 20:14:30 +0100 Subject: [PATCH] Harmonize validation --- apps/api/src/app/import/import.service.ts | 4 +- .../data-provider/data-provider.service.ts | 37 +++++++++++-------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 097342c1d..497b8a7e9 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -395,9 +395,9 @@ export class ImportService { const assetProfiles = await this.dataProviderService.validateActivities({ activitiesDto, + assetProfilesWithMarketDataDto, maxActivitiesToImport, - user, - assetProfilesDto: assetProfilesWithMarketDataDto + user }); const activitiesExtendedWithErrors = await this.extendActivitiesWithErrors({ diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index 2e772e779..eb9816c67 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -190,7 +190,7 @@ export class DataProviderService implements OnModuleInit { public async validateActivities({ activitiesDto, - assetProfilesDto, + assetProfilesWithMarketDataDto, maxActivitiesToImport, user }: { @@ -198,7 +198,7 @@ export class DataProviderService implements OnModuleInit { Partial, 'currency' | 'dataSource' | 'symbol' | 'type' >[]; - assetProfilesDto?: ImportDataDto['assetProfiles']; + assetProfilesWithMarketDataDto?: ImportDataDto['assetProfiles']; maxActivitiesToImport: number; user: UserWithSettings; }) { @@ -212,9 +212,10 @@ export class DataProviderService implements OnModuleInit { const dataSources = await this.getDataSources(); - for (const [index, activity] of activitiesDto.entries()) { - const { currency, dataSource, symbol, type } = activity; - + for (const [ + index, + { currency, dataSource, symbol, type } + ] of activitiesDto.entries()) { const activityPath = maxActivitiesToImport === 1 ? 'activity' : `activities.${index}`; @@ -244,11 +245,13 @@ export class DataProviderService implements OnModuleInit { if (!assetProfiles[assetProfileIdentifier]) { if (['FEE', 'INTEREST', 'LIABILITY'].includes(type)) { - const assetProfileInImport = assetProfilesDto?.find((profile) => { - return ( - profile.dataSource === dataSource && profile.symbol === symbol - ); - }); + const assetProfileInImport = assetProfilesWithMarketDataDto?.find( + (profile) => { + return ( + profile.dataSource === dataSource && profile.symbol === symbol + ); + } + ); assetProfiles[assetProfileIdentifier] = { currency, @@ -274,11 +277,13 @@ export class DataProviderService implements OnModuleInit { } catch {} if (!assetProfile?.name) { - const assetProfileInImport = assetProfilesDto?.find((profile) => { - return ( - profile.dataSource === dataSource && profile.symbol === symbol - ); - }); + const assetProfileInImport = assetProfilesWithMarketDataDto?.find( + (profile) => { + return ( + profile.dataSource === dataSource && profile.symbol === symbol + ); + } + ); if (assetProfileInImport) { Object.assign(assetProfile, assetProfileInImport); @@ -287,7 +292,7 @@ export class DataProviderService implements OnModuleInit { if (!assetProfile?.name) { throw new Error( - `${activityPath}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")` + `activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")` ); }