From aadd9f56a041fe6d9ebf851e400b22c2cac3d95a Mon Sep 17 00:00:00 2001 From: Felix Jordan Date: Thu, 8 May 2025 21:08:19 +0600 Subject: [PATCH] Feature/extend admin endpoint by asset profile count per data provider (#4676) * Extend admin endpoint by asset profile count per data provider * Update changelog --- CHANGELOG.md | 4 +++ apps/api/src/app/admin/admin.service.ts | 25 +++++++++++++++---- .../lib/interfaces/admin-data.interface.ts | 2 +- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f46976a8..1fd31d81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added the asset profile count per data provider to the endpoint `GET api/v1/admin` + ### Changed - Improved the language localization for Catalan (`ca`) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 79beedea..e4c50c1f 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -143,15 +143,30 @@ export class AdminService { this.countUsersWithAnalytics() ]); + const dataProviders = await Promise.all( + dataSources.map(async (dataSource) => { + const dataProviderInfo = this.dataProviderService + .getDataProvider(dataSource) + .getDataProviderInfo(); + + const assetProfileCount = await this.prismaService.symbolProfile.count({ + where: { + dataSource + } + }); + + return { + ...dataProviderInfo, + assetProfileCount + }; + }) + ); + return { + dataProviders, settings, transactionCount, userCount, - dataProviders: dataSources.map((dataSource) => { - return this.dataProviderService - .getDataProvider(dataSource) - .getDataProviderInfo(); - }), version: environment.version }; } diff --git a/libs/common/src/lib/interfaces/admin-data.interface.ts b/libs/common/src/lib/interfaces/admin-data.interface.ts index dba85d3e..cef98390 100644 --- a/libs/common/src/lib/interfaces/admin-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-data.interface.ts @@ -1,7 +1,7 @@ import { DataProviderInfo } from './data-provider-info.interface'; export interface AdminData { - dataProviders: DataProviderInfo[]; + dataProviders: (DataProviderInfo & { assetProfileCount: number })[]; settings: { [key: string]: boolean | object | string | string[] }; transactionCount: number; userCount: number;