From 8419d048474d80f38b76f8b6ab0acb575eafce3d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:42:48 +0100 Subject: [PATCH] Resolve data source of GHOSTFOLIO data provider --- ...form-data-source-in-request.interceptor.ts | 16 +++++++++++++- ...orm-data-source-in-response.interceptor.ts | 22 ++++++++++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts index 1600bd137..3931f362c 100644 --- a/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts +++ b/apps/api/src/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor.ts @@ -27,9 +27,23 @@ export class TransformDataSourceInRequestInterceptor if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { if (request.body?.activities) { + const dataSourceGhostfolioDataProvider = this.configurationService.get( + 'DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER' + )?.[0]; + request.body.activities = request.body.activities.map((activity) => { if (DataSource[activity.dataSource]) { - return activity; + if ( + activity.dataSource === 'GHOSTFOLIO' && + dataSourceGhostfolioDataProvider + ) { + return { + ...activity, + dataSource: dataSourceGhostfolioDataProvider + }; + } else { + return activity; + } } else { return { ...activity, diff --git a/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts index deda4db66..fea5d6fe6 100644 --- a/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts +++ b/apps/api/src/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor.ts @@ -40,20 +40,32 @@ export class TransformDataSourceInResponseInterceptor } public intercept( - _context: ExecutionContext, + context: ExecutionContext, next: CallHandler ): Observable { + const isExportMode = context.getClass().name === 'ExportController'; + return next.handle().pipe( map((data: any) => { if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { + const valueMap = this.encodedDataSourceMap; + + if (isExportMode) { + for (const dataSource of this.configurationService.get( + 'DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER' + )) { + valueMap[dataSource] = 'GHOSTFOLIO'; + } + } + data = redactAttributes({ + object: data, options: [ { - attribute: 'dataSource', - valueMap: this.encodedDataSourceMap + valueMap, + attribute: 'dataSource' } - ], - object: data + ] }); }