From cb30ea297981c0950f45e7688843a5646d1f2123 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 29 Jul 2025 21:35:02 +0200 Subject: [PATCH] Feature/restructure portfolio report response (part 2) (#5282) * Restructure response of portfolio report endpoint --- apps/api/src/app/portfolio/portfolio.controller.ts | 6 +++--- apps/api/src/app/portfolio/portfolio.service.ts | 8 ++++---- .../src/app/pages/portfolio/x-ray/x-ray-page.component.ts | 6 +++--- .../interfaces/responses/portfolio-report.interface.ts | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 17cf41702..f6cbbf105 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -655,11 +655,11 @@ export class PortfolioController { this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') && this.request.user.subscription.type === 'Basic' ) { - for (const rule in report['x-ray'].rules) { - report['x-ray'].rules[rule] = null; + for (const rule in report.xRay.rules) { + report.xRay.rules[rule] = null; } - report['x-ray'].statistics = { + report.xRay.statistics = { rulesActiveCount: 0, rulesFulfilledCount: 0 }; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 83653dd9f..02804a847 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1157,7 +1157,7 @@ export class PortfolioService { }) ).toNumber(); - const rules: PortfolioReportResponse['x-ray']['rules'] = { + const rules: PortfolioReportResponse['xRay']['rules'] = { accountClusterRisk: summary.activityCount > 0 ? await this.rulesService.evaluate( @@ -1313,7 +1313,7 @@ export class PortfolioService { }; return { - 'x-ray': { + xRay: { rules, statistics: this.getReportStatistics(rules) } @@ -1737,8 +1737,8 @@ export class PortfolioService { } private getReportStatistics( - evaluatedRules: PortfolioReportResponse['x-ray']['rules'] - ): PortfolioReportResponse['x-ray']['statistics'] { + evaluatedRules: PortfolioReportResponse['xRay']['rules'] + ): PortfolioReportResponse['xRay']['statistics'] { const rulesActiveCount = Object.values(evaluatedRules) .flat() .filter((rule) => { diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts index cad7d41e9..d7b9bc51d 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts @@ -47,7 +47,7 @@ export class GfXRayPageComponent { public inactiveRules: PortfolioReportRule[]; public isLoading = false; public regionalMarketClusterRiskRules: PortfolioReportRule[]; - public statistics: PortfolioReportResponse['x-ray']['statistics']; + public statistics: PortfolioReportResponse['xRay']['statistics']; public user: User; private unsubscribeSubject = new Subject(); @@ -115,7 +115,7 @@ export class GfXRayPageComponent { this.dataService .fetchPortfolioReport() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ 'x-ray': { rules, statistics } }) => { + .subscribe(({ xRay: { rules, statistics } }) => { this.inactiveRules = this.mergeInactiveRules(rules); this.statistics = statistics; @@ -161,7 +161,7 @@ export class GfXRayPageComponent { } private mergeInactiveRules( - rules: PortfolioReportResponse['x-ray']['rules'] + rules: PortfolioReportResponse['xRay']['rules'] ): PortfolioReportRule[] { let inactiveRules: PortfolioReportRule[] = []; diff --git a/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts index 7ede7a5ed..985a42311 100644 --- a/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts +++ b/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts @@ -1,7 +1,7 @@ import { PortfolioReportRule } from '../portfolio-report-rule.interface'; export interface PortfolioReportResponse { - 'x-ray': { + xRay: { rules: { [group: string]: PortfolioReportRule[] }; statistics: { rulesActiveCount: number;