From 0d1878148bfce5e66af4ca34a2ab12c6be61fcfa Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 1 Feb 2025 10:13:58 +0100 Subject: [PATCH] Concat Tags from SymbolProfile as well --- apps/api/src/app/portfolio/portfolio.controller.ts | 2 ++ apps/api/src/app/portfolio/portfolio.service.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index beb75001b..ff7a3e1db 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -177,6 +177,7 @@ export class PortfolioController { ? portfolioPosition.markets : undefined; portfolioPosition.sectors = hasDetails ? portfolioPosition.sectors : []; + portfolioPosition.tags = hasDetails ? portfolioPosition.tags : []; } for (const [name, { valueInBaseCurrency }] of Object.entries(accounts)) { @@ -243,6 +244,7 @@ export class PortfolioController { currency: hasDetails ? portfolioPosition.currency : undefined, holdings: hasDetails ? portfolioPosition.holdings : [], markets: hasDetails ? portfolioPosition.markets : undefined, + tags: hasDetails ? portfolioPosition.tags : [], marketsAdvanced: hasDetails ? portfolioPosition.marketsAdvanced : undefined, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 207879b86..4e8f4de60 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -78,7 +78,7 @@ import { parseISO, set } from 'date-fns'; -import { isEmpty, uniq } from 'lodash'; +import { isEmpty, uniq, uniqBy } from 'lodash'; import { CPRPortfolioCalculator } from './calculator/constantPortfolioReturn/portfolio-calculator'; import { PortfolioCalculator } from './calculator/portfolio-calculator'; @@ -486,13 +486,17 @@ export class PortfolioService { })); } + const tagsInternal = tags.concat( + symbolProfiles.find((sp) => sp.symbol === symbol)?.tags ?? [] + ); + holdings[symbol] = { currency, markets, marketsAdvanced, marketPrice, symbol, - tags, + tags: uniqBy(tagsInternal, 'id'), transactionCount, allocationInPercentage: filteredValueInBaseCurrency.eq(0) ? 0