Browse Source

Task/extend export response by performanceCalculationType (#5816)

* Extend export response by performanceCalculationType

* Update changelog
pull/5819/head
Vansh 7 days ago
committed by GitHub
parent
commit
0b28da879b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      CHANGELOG.md
  2. 4
      apps/api/src/app/export/export.controller.ts
  3. 19
      apps/api/src/app/export/export.service.ts
  4. 8
      libs/common/src/lib/interfaces/responses/export-response.interface.ts

4
CHANGELOG.md

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased ## Unreleased
### Added
- Extended the export functionality by the user account’s performance calculation type
### Changed ### Changed
- Localized the number formatting in the static portfolio analysis rule: _Liquidity_ (Buying Power) - Localized the number formatting in the static portfolio analysis rule: _Liquidity_ (Buying Power)

4
apps/api/src/app/export/export.controller.ts

@ -48,8 +48,8 @@ export class ExportController {
return this.exportService.export({ return this.exportService.export({
activityIds, activityIds,
filters, filters,
userCurrency: this.request.user.settings.settings.baseCurrency, userId: this.request.user.id,
userId: this.request.user.id userSettings: this.request.user.settings.settings
}); });
} }
} }

19
apps/api/src/app/export/export.service.ts

@ -3,7 +3,11 @@ import { OrderService } from '@ghostfolio/api/app/order/order.service';
import { environment } from '@ghostfolio/api/environments/environment'; import { environment } from '@ghostfolio/api/environments/environment';
import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service';
import { TagService } from '@ghostfolio/api/services/tag/tag.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 { Injectable } from '@nestjs/common';
import { Platform, Prisma } from '@prisma/client'; import { Platform, Prisma } from '@prisma/client';
@ -21,13 +25,13 @@ export class ExportService {
public async export({ public async export({
activityIds, activityIds,
filters, filters,
userCurrency, userId,
userId userSettings
}: { }: {
activityIds?: string[]; activityIds?: string[];
filters?: Filter[]; filters?: Filter[];
userCurrency: string;
userId: string; userId: string;
userSettings: UserSettings;
}): Promise<ExportResponse> { }): Promise<ExportResponse> {
const { ACCOUNT: filtersByAccount } = groupBy(filters, ({ type }) => { const { ACCOUNT: filtersByAccount } = groupBy(filters, ({ type }) => {
return type; return type;
@ -36,11 +40,11 @@ export class ExportService {
let { activities } = await this.orderService.getOrders({ let { activities } = await this.orderService.getOrders({
filters, filters,
userCurrency,
userId, userId,
includeDrafts: true, includeDrafts: true,
sortColumn: 'date', sortColumn: 'date',
sortDirection: 'asc', sortDirection: 'asc',
userCurrency: userSettings?.baseCurrency,
withExcludedAccountsAndActivities: true withExcludedAccountsAndActivities: true
}); });
@ -244,7 +248,10 @@ export class ExportService {
} }
), ),
user: { user: {
settings: { currency: userCurrency } settings: {
currency: userSettings?.baseCurrency,
performanceCalculationType: userSettings?.performanceCalculationType
}
} }
}; };
} }

8
libs/common/src/lib/interfaces/responses/export-response.interface.ts

@ -9,6 +9,7 @@ import {
import { AccountBalance } from '../account-balance.interface'; import { AccountBalance } from '../account-balance.interface';
import { MarketData } from '../market-data.interface'; import { MarketData } from '../market-data.interface';
import { UserSettings } from '../user-settings.interface';
export interface ExportResponse { export interface ExportResponse {
accounts: (Omit<Account, 'createdAt' | 'updatedAt' | 'userId'> & { accounts: (Omit<Account, 'createdAt' | 'updatedAt' | 'userId'> & {
@ -36,5 +37,10 @@ export interface ExportResponse {
}; };
platforms: Platform[]; platforms: Platform[];
tags: Omit<Tag, 'userId'>[]; tags: Omit<Tag, 'userId'>[];
user: { settings: { currency: string } }; user: {
settings: {
currency: UserSettings['baseCurrency'];
performanceCalculationType: UserSettings['performanceCalculationType'];
};
};
} }

Loading…
Cancel
Save