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); } }