diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 8b2118ab1..e473813e9 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -66,7 +66,7 @@ export class AdminController { @HasPermission(permissions.accessAdminControl) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async getAdminData(): Promise { - return this.adminService.get({ user: this.request.user }); + return this.adminService.get(); } @Get('demo-user/sync') diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 9e645c059..bce603289 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -29,7 +29,7 @@ import { Filter } from '@ghostfolio/common/interfaces'; import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; -import { MarketDataPreset, UserWithSettings } from '@ghostfolio/common/types'; +import { MarketDataPreset } from '@ghostfolio/common/types'; import { BadRequestException, @@ -133,11 +133,8 @@ export class AdminService { } } - public async get({ user }: { user: UserWithSettings }): Promise { - const dataSources = await this.dataProviderService.getDataSources({ - user, - includeGhostfolio: true - }); + public async get(): Promise { + const dataSources = Object.values(DataSource); const [settings, transactionCount, userCount] = await Promise.all([ this.propertyService.get(), @@ -145,24 +142,31 @@ export class AdminService { this.countUsersWithAnalytics() ]); - const dataProviders = await Promise.all( - dataSources.map(async (dataSource) => { - const dataProviderInfo = this.dataProviderService - .getDataProvider(dataSource) - .getDataProviderInfo(); + const dataProviders = ( + await Promise.all( + dataSources.map(async (dataSource) => { + const assetProfileCount = + await this.prismaService.symbolProfile.count({ + where: { + dataSource + } + }); - const assetProfileCount = await this.prismaService.symbolProfile.count({ - where: { - dataSource + if (assetProfileCount > 0 || dataSource === 'GHOSTFOLIO') { + const dataProviderInfo = this.dataProviderService + .getDataProvider(dataSource) + .getDataProviderInfo(); + + return { + ...dataProviderInfo, + assetProfileCount + }; } - }); - return { - ...dataProviderInfo, - assetProfileCount - }; - }) - ); + return null; + }) + ) + ).filter(Boolean); return { dataProviders,