From ddbb507c80a622f2964b1479b5511cc3ac45f226 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 21 Aug 2021 11:07:17 +0200 Subject: [PATCH] Eliminate accounts from PortfolioPosition --- apps/api/src/app/portfolio/portfolio.controller.ts | 13 +++++-------- apps/api/src/app/portfolio/portfolio.service.ts | 12 +----------- .../lib/interfaces/portfolio-position.interface.ts | 3 --- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 7ddf22bb0..34e7d5376 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -157,16 +157,13 @@ export class PortfolioController { portfolioPosition.investment = portfolioPosition.investment / totalInvestment; - for (const [account, { current, original }] of Object.entries( - portfolioPosition.accounts - )) { - portfolioPosition.accounts[account].current = current / totalValue; - portfolioPosition.accounts[account].original = - original / totalInvestment; - } - portfolioPosition.quantity = null; } + + for (const [name, { current, original }] of Object.entries(accounts)) { + accounts[name].current = current / totalValue; + accounts[name].original = original / totalInvestment; + } } return res.json({ accounts, holdings }); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 8f03e9e97..2ccc34544 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -216,7 +216,6 @@ export class PortfolioService { const symbolProfile = symbolProfileMap[item.symbol]; const dataProviderResponse = dataProviderResponses[item.symbol]; holdings[item.symbol] = { - accounts, allocationCurrent: value.div(totalValue).toNumber(), allocationInvestment: item.investment.div(totalInvestment).toNumber(), assetClass: symbolProfile.assetClass, @@ -702,18 +701,9 @@ export class PortfolioService { investment: Big; value: Big; }) { - const accounts = {}; const cashValue = new Big(cashDetails.balance); - cashDetails.accounts.forEach((account) => { - accounts[account.name] = { - current: account.balance, - original: account.balance - }; - }); - return { - accounts, allocationCurrent: cashValue.div(value).toNumber(), allocationInvestment: cashValue.div(investment).toNumber(), assetClass: AssetClass.CASH, @@ -800,7 +790,7 @@ export class PortfolioService { portfolioItemsNow: { [p: string]: TimelinePosition }, userCurrency ) { - const accounts: PortfolioPosition['accounts'] = {}; + const accounts: PortfolioDetails['accounts'] = {}; for (const order of orders) { let currentValueOfSymbol = this.exchangeRateDataService.toCurrency( order.quantity * portfolioItemsNow[order.symbol].marketPrice, diff --git a/libs/common/src/lib/interfaces/portfolio-position.interface.ts b/libs/common/src/lib/interfaces/portfolio-position.interface.ts index 2a5d8bd66..5327e02ec 100644 --- a/libs/common/src/lib/interfaces/portfolio-position.interface.ts +++ b/libs/common/src/lib/interfaces/portfolio-position.interface.ts @@ -5,9 +5,6 @@ import { Country } from './country.interface'; import { Sector } from './sector.interface'; export interface PortfolioPosition { - accounts: { - [name: string]: { current: number; original: number }; - }; allocationCurrent: number; allocationInvestment: number; assetClass?: AssetClass;