From ea491184f4d5c1c65096f355295e7feff37317ac Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Tue, 23 Aug 2022 21:00:44 +0200 Subject: [PATCH] Extend columns --- apps/api/src/app/admin/admin.service.ts | 14 +++++++ .../admin-market-data.component.ts | 6 ++- .../admin-market-data/admin-market-data.html | 40 ++++++++++++++++++- .../interfaces/admin-market-data.interface.ts | 8 +++- 4 files changed, 63 insertions(+), 5 deletions(-) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 2d4edc993..e9d1152bc 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -95,6 +95,10 @@ export class AdminService { _count: { select: { Order: true } }, + assetClass: true, + assetSubClass: true, + countries: true, + sectors: true, dataSource: true, Order: { orderBy: [{ date: 'asc' }], @@ -106,6 +110,9 @@ export class AdminService { } }) ).map((symbolProfile) => { + const countriesCount = symbolProfile.countries + ? Object.keys(symbolProfile.countries).length + : 0; const marketDataItemCount = marketData.find((marketDataItem) => { return ( @@ -113,10 +120,17 @@ export class AdminService { marketDataItem.symbol === symbolProfile.symbol ); })?._count ?? 0; + const sectorsCount = symbolProfile.sectors + ? Object.keys(symbolProfile.sectors).length + : 0; return { + countriesCount, marketDataItemCount, + sectorsCount, activityCount: symbolProfile._count.Order, + assetClass: symbolProfile.assetClass, + assetSubClass: symbolProfile.assetSubClass, dataSource: symbolProfile.dataSource, date: symbolProfile.Order?.[0]?.date, symbol: symbolProfile.symbol diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index a6c0fde7f..fdc8b544e 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -16,7 +16,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { DATE_FORMAT, getDateFormatString } from '@ghostfolio/common/helper'; import { UniqueAsset, User } from '@ghostfolio/common/interfaces'; import { AdminMarketDataItem } from '@ghostfolio/common/interfaces/admin-market-data.interface'; -import { DataSource, MarketData } from '@prisma/client'; +import { DataSource } from '@prisma/client'; import { format, parseISO } from 'date-fns'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; @@ -41,9 +41,13 @@ export class AdminMarketDataComponent implements OnDestroy, OnInit { public displayedColumns = [ 'symbol', 'dataSource', + 'assetClass', + 'assetSubClass', 'date', 'activityCount', 'marketDataItemCount', + 'countriesCount', + 'sectorsCount', 'actions' ]; public marketData: AdminMarketDataItem[] = []; diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html index 4b160ca9a..d116a0e23 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.html +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -27,6 +27,24 @@ + + + Asset Class + + + {{ element.assetClass }} + + + + + + Asset Sub Class + + + {{ element.assetSubClass }} + + + First Activity @@ -40,7 +58,7 @@ Activity Count - + {{ element.activityCount }} @@ -49,11 +67,29 @@ Historical Data - + {{ element.marketDataItemCount }} + + + Countries Count + + + {{ element.countriesCount }} + + + + + + Sectors Count + + + {{ element.sectorsCount }} + + + diff --git a/libs/common/src/lib/interfaces/admin-market-data.interface.ts b/libs/common/src/lib/interfaces/admin-market-data.interface.ts index 826cca861..437b2975d 100644 --- a/libs/common/src/lib/interfaces/admin-market-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data.interface.ts @@ -1,12 +1,16 @@ -import { DataSource } from '@prisma/client'; +import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; export interface AdminMarketData { marketData: AdminMarketDataItem[]; } export interface AdminMarketDataItem { + assetClass?: AssetClass; + assetSubClass?: AssetSubClass; + countriesCount: number; dataSource: DataSource; date?: Date; - marketDataItemCount?: number; + marketDataItemCount: number; + sectorsCount: number; symbol: string; }