From e6428d91309c81174d066428589c1e1bcb5e0ca0 Mon Sep 17 00:00:00 2001 From: Vansh Date: Wed, 22 Oct 2025 15:14:35 +0530 Subject: [PATCH] feat: extend export response interface --- apps/api/src/app/export/export.controller.ts | 2 +- apps/api/src/app/export/export.service.ts | 13 +++++++++---- .../responses/export-response.interface.ts | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index 0b4a2c6e0..f00b010c4 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -48,7 +48,7 @@ export class ExportController { return this.exportService.export({ activityIds, filters, - userCurrency: this.request.user.settings.settings.baseCurrency, + userSettings: this.request.user.settings.settings, userId: this.request.user.id }); } diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index 2001fd3e2..8b2d72c09 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -3,7 +3,7 @@ import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { environment } from '@ghostfolio/api/environments/environment'; import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; import { TagService } from '@ghostfolio/api/services/tag/tag.service'; -import { ExportResponse, Filter } from '@ghostfolio/common/interfaces'; +import { ExportResponse, Filter, UserSettings } from '@ghostfolio/common/interfaces'; import { Injectable } from '@nestjs/common'; import { Platform, Prisma } from '@prisma/client'; @@ -21,12 +21,12 @@ export class ExportService { public async export({ activityIds, filters, - userCurrency, + userSettings, userId }: { activityIds?: string[]; filters?: Filter[]; - userCurrency: string; + userSettings: UserSettings; userId: string; }): Promise { const { ACCOUNT: filtersByAccount } = groupBy(filters, ({ type }) => { @@ -34,6 +34,8 @@ export class ExportService { }); const platformsMap: { [platformId: string]: Platform } = {}; + const userCurrency = userSettings?.baseCurrency; + let { activities } = await this.orderService.getOrders({ filters, userCurrency, @@ -244,7 +246,10 @@ export class ExportService { } ), user: { - settings: { currency: userCurrency } + settings: { + currency: userCurrency, + performanceCalculationType: userSettings?.performanceCalculationType + } } }; } diff --git a/libs/common/src/lib/interfaces/responses/export-response.interface.ts b/libs/common/src/lib/interfaces/responses/export-response.interface.ts index a5416e886..ae4bf0b49 100644 --- a/libs/common/src/lib/interfaces/responses/export-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/export-response.interface.ts @@ -9,6 +9,7 @@ import { import { AccountBalance } from '../account-balance.interface'; import { MarketData } from '../market-data.interface'; +import { PerformanceCalculationType } from '../../types/performance-calculation-type.type'; export interface ExportResponse { accounts: (Omit & { @@ -36,5 +37,5 @@ export interface ExportResponse { }; platforms: Platform[]; tags: Omit[]; - user: { settings: { currency: string } }; + user: { settings: { currency: string; performanceCalculationType: PerformanceCalculationType } }; }