Browse Source

feat: holdings api now supports pastInvestments true/false

pull/3146/head
gerardPolloRebozado 1 year ago
parent
commit
62573e5410
  1. 2
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 8
      apps/api/src/app/portfolio/portfolio.service.ts

2
apps/api/src/app/portfolio/portfolio.controller.ts

@ -285,6 +285,7 @@ export class PortfolioController {
@Query('accounts') filterByAccounts?: string, @Query('accounts') filterByAccounts?: string,
@Query('assetClasses') filterByAssetClasses?: string, @Query('assetClasses') filterByAssetClasses?: string,
@Query('query') filterBySearchQuery?: string, @Query('query') filterBySearchQuery?: string,
@Query('pastInvestments') pastInvestments: boolean = false,
@Query('tags') filterByTags?: string @Query('tags') filterByTags?: string
): Promise<PortfolioHoldingsResponse> { ): Promise<PortfolioHoldingsResponse> {
const filters = this.apiService.buildFiltersFromQueryParams({ const filters = this.apiService.buildFiltersFromQueryParams({
@ -297,6 +298,7 @@ export class PortfolioController {
const { holdings } = await this.portfolioService.getDetails({ const { holdings } = await this.portfolioService.getDetails({
filters, filters,
impersonationId, impersonationId,
pastInvestments,
userId: this.request.user.id userId: this.request.user.id
}); });

8
apps/api/src/app/portfolio/portfolio.service.ts

@ -336,6 +336,7 @@ export class PortfolioService {
dateRange = 'max', dateRange = 'max',
filters, filters,
impersonationId, impersonationId,
pastInvestments,
userId, userId,
withExcludedAccounts = false, withExcludedAccounts = false,
withLiabilities = false, withLiabilities = false,
@ -344,6 +345,7 @@ export class PortfolioService {
dateRange?: DateRange; dateRange?: DateRange;
filters?: Filter[]; filters?: Filter[];
impersonationId: string; impersonationId: string;
pastInvestments?: boolean;
userId: string; userId: string;
withExcludedAccounts?: boolean; withExcludedAccounts?: boolean;
withLiabilities?: boolean; withLiabilities?: boolean;
@ -463,8 +465,10 @@ export class PortfolioService {
transactionCount, transactionCount,
valueInBaseCurrency valueInBaseCurrency
} of currentPositions.positions) { } of currentPositions.positions) {
if (quantity.eq(0)) { if (quantity.eq(0) && pastInvestments === false) {
// Ignore positions without any quantity // Ignore positions without any quantity if past investments are not requested
continue;
} else if (!quantity.eq(0) && pastInvestments === true) {
continue; continue;
} }

Loading…
Cancel
Save