From 7ddee62246e16afe228d82750482249372112a0a Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 18 Feb 2024 09:33:30 +0100 Subject: [PATCH] Refactor query to filter activities of excluded accounts --- apps/api/src/app/order/order.service.ts | 48 ++++++++++++------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 5a6beb0a4..e60309856 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -301,6 +301,12 @@ export class OrderService { }); } + if (withExcludedAccounts === false) { + where.Account = { + NOT: { isExcluded: true } + }; + } + const [orders, count] = await Promise.all([ this.orders({ orderBy, @@ -322,32 +328,24 @@ export class OrderService { this.prismaService.order.count({ where }) ]); - const activities = orders - .filter((order) => { - return ( - withExcludedAccounts || - !order.Account || - order.Account?.isExcluded === false - ); - }) - .map((order) => { - const value = new Big(order.quantity).mul(order.unitPrice).toNumber(); - - return { - ...order, + const activities = orders.map((order) => { + const value = new Big(order.quantity).mul(order.unitPrice).toNumber(); + + return { + ...order, + value, + feeInBaseCurrency: this.exchangeRateDataService.toCurrency( + order.fee, + order.SymbolProfile.currency, + userCurrency + ), + valueInBaseCurrency: this.exchangeRateDataService.toCurrency( value, - feeInBaseCurrency: this.exchangeRateDataService.toCurrency( - order.fee, - order.SymbolProfile.currency, - userCurrency - ), - valueInBaseCurrency: this.exchangeRateDataService.toCurrency( - value, - order.SymbolProfile.currency, - userCurrency - ) - }; - }); + order.SymbolProfile.currency, + userCurrency + ) + }; + }); return { activities, count }; }