From 85af3db0d83cea74a90724d51c4e4e85ad70dc31 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 4 Jun 2025 20:09:06 +0200 Subject: [PATCH] Bugfix/respect filter by holding when exporting activities (#4824) * Respect filter by holding when exporting activities * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/export/export.controller.ts | 15 ++++++++++++++- apps/api/src/app/export/export.module.ts | 9 ++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ab9c06e5..606b144d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Respected the filter by holding when deleting activities on the portfolio activities page +- Respected the filter by holding when exporting activities on the portfolio activities page - Fixed an exception with currencies in the historical market data editor of the admin control panel ## 2.165.0 - 2025-05-31 diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index d807132c9..db2c7e3d9 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -1,9 +1,17 @@ import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; +import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.interceptor'; import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { Export } from '@ghostfolio/common/interfaces'; import type { RequestWithUser } from '@ghostfolio/common/types'; -import { Controller, Get, Inject, Query, UseGuards } from '@nestjs/common'; +import { + Controller, + Get, + Inject, + Query, + UseGuards, + UseInterceptors +} from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; @@ -19,16 +27,21 @@ export class ExportController { @Get() @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + @UseInterceptors(TransformDataSourceInRequestInterceptor) public async export( @Query('accounts') filterByAccounts?: string, @Query('activityIds') filterByActivityIds?: string, @Query('assetClasses') filterByAssetClasses?: string, + @Query('dataSource') filterByDataSource?: string, + @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string ): Promise { const activityIds = filterByActivityIds?.split(',') ?? []; const filters = this.apiService.buildFiltersFromQueryParams({ filterByAccounts, filterByAssetClasses, + filterByDataSource, + filterBySymbol, filterByTags }); diff --git a/apps/api/src/app/export/export.module.ts b/apps/api/src/app/export/export.module.ts index 892a761cc..424e83617 100644 --- a/apps/api/src/app/export/export.module.ts +++ b/apps/api/src/app/export/export.module.ts @@ -1,5 +1,6 @@ import { AccountModule } from '@ghostfolio/api/app/account/account.module'; import { OrderModule } from '@ghostfolio/api/app/order/order.module'; +import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module'; import { ApiModule } from '@ghostfolio/api/services/api/api.module'; import { TagModule } from '@ghostfolio/api/services/tag/tag.module'; @@ -9,8 +10,14 @@ import { ExportController } from './export.controller'; import { ExportService } from './export.service'; @Module({ - imports: [AccountModule, ApiModule, OrderModule, TagModule], controllers: [ExportController], + imports: [ + AccountModule, + ApiModule, + OrderModule, + TagModule, + TransformDataSourceInRequestModule + ], providers: [ExportService] }) export class ExportModule {}