From 136c4bf50b6184ccf25b2cc2cb2f0080dd4b52f9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 19 May 2023 14:47:20 +0200 Subject: [PATCH] Bugfix/fix data source transformation in dividends import (#1985) * Fix data source transformation * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/import/import.controller.ts | 2 ++ ...sform-data-source-in-request.interceptor.ts | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb5821fc..68e73709 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Improved the _Select all_ activities checkbox state after importing activities including a duplicate +- Fixed an issue with the data source transformation in the import dividends dialog - Fixed the _Storybook_ setup ## 1.269.0 - 2023-05-11 diff --git a/apps/api/src/app/import/import.controller.ts b/apps/api/src/app/import/import.controller.ts index 289d103e..9fbc8075 100644 --- a/apps/api/src/app/import/import.controller.ts +++ b/apps/api/src/app/import/import.controller.ts @@ -35,6 +35,8 @@ export class ImportController { @Post() @UseGuards(AuthGuard('jwt')) + @UseInterceptors(TransformDataSourceInRequestInterceptor) + @UseInterceptors(TransformDataSourceInResponseInterceptor) public async import( @Body() importData: ImportDataDto, @Query('dryRun') isDryRun?: boolean diff --git a/apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts b/apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts index 6b75a561..ad257963 100644 --- a/apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts +++ b/apps/api/src/interceptors/transform-data-source-in-request.interceptor.ts @@ -6,6 +6,7 @@ import { Injectable, NestInterceptor } from '@nestjs/common'; +import { DataSource } from '@prisma/client'; import { Observable } from 'rxjs'; @Injectable() @@ -24,11 +25,24 @@ export class TransformDataSourceInRequestInterceptor const request = http.getRequest(); if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { - if (request.body.dataSource) { + if (request.body.activities) { + request.body.activities = request.body.activities.map((activity) => { + if (DataSource[activity.dataSource]) { + return activity; + } else { + return { + ...activity, + dataSource: decodeDataSource(activity.dataSource) + }; + } + }); + } + + if (request.body.dataSource && !DataSource[request.body.dataSource]) { request.body.dataSource = decodeDataSource(request.body.dataSource); } - if (request.params.dataSource) { + if (request.params.dataSource && !DataSource[request.params.dataSource]) { request.params.dataSource = decodeDataSource(request.params.dataSource); } }