From a6880e1aff5a0d94bff76454fc5217aaa79e54b9 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 6 Nov 2023 19:04:14 +0100 Subject: [PATCH] First try adding tag to portfolio performance analysis --- apps/api/src/app/order/order.service.ts | 35 +++++++++++++++---- .../src/app/portfolio/portfolio.service.ts | 1 + apps/api/src/services/tag/tag.service.ts | 17 ++++++--- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 10515018c..78d153115 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -298,13 +298,30 @@ export class OrderService { } if (filtersByTag?.length > 0) { - where.tags = { - some: { - OR: filtersByTag.map(({ id }) => { - return { id }; - }) + where.OR = [ + { + tags: { + some: { + OR: filtersByTag.map(({ id }) => { + return { + id: id + }; + }) + } + } + }, + { + SymbolProfile: { + tags: { + some: { + OR: filtersByTag.map(({ id }) => { + return { id }; + }) + } + } + } } - }; + ]; } if (types) { @@ -330,7 +347,11 @@ export class OrderService { } }, // eslint-disable-next-line @typescript-eslint/naming-convention - SymbolProfile: true, + SymbolProfile: { + include: { + tags: true + } + }, tags: true }, orderBy: { date: 'asc' } diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index d768268ec..e656d2df3 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1190,6 +1190,7 @@ export class PortfolioService { dataProviderResponses[position.symbol]?.marketState ?? 'delayed', name: symbolProfileMap[position.symbol].name, netPerformance: position.netPerformance?.toNumber() ?? null, + tags: symbolProfileMap[position.symbol].tags, netPerformancePercentage: position.netPerformancePercentage?.toNumber() ?? null, quantity: new Big(position.quantity).toNumber() diff --git a/apps/api/src/services/tag/tag.service.ts b/apps/api/src/services/tag/tag.service.ts index c02345784..a47a528bc 100644 --- a/apps/api/src/services/tag/tag.service.ts +++ b/apps/api/src/services/tag/tag.service.ts @@ -19,11 +19,20 @@ export class TagService { name: 'asc' }, where: { - orders: { - some: { - userId + OR: [ + { + orders: { + some: { + userId + } + } + }, + { + symbolProfile: { + some: {} + } } - } + ] } }); }