From 21d337525dc4cfc0f628308e5a06b55ed47b4370 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:15:19 +0200 Subject: [PATCH 1/2] Feature/extend data providers management by every data provider in use (#5386) * Extend data providers management * Update changelog --- CHANGELOG.md | 6 +++ apps/api/src/app/admin/admin.controller.ts | 2 +- apps/api/src/app/admin/admin.service.ts | 46 ++++++++++++---------- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b496df2c..196fb1853 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added + +- Extended the data providers management of the admin control panel by every data provider in use + ## 2.192.0 - 2025-08-21 ### Added 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, From 7769f31e414a7de7d41f94e81d9485c47bae0f0b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 22 Aug 2025 20:08:10 +0200 Subject: [PATCH 2/2] Feature/extend personal finance tools 20250822 (#5388) * Add InvMon --- libs/common/src/lib/personal-finance-tools.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index e814ac415..d0e47ee3b 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -446,6 +446,17 @@ export const personalFinanceTools: Product[] = [ origin: 'Pakistan', slogan: 'Advanced portfolio tracking and stock market information' }, + { + founded: 2021, + hasFreePlan: true, + hasSelfHostingAbility: true, + key: 'invmon', + name: 'InvMon', + origin: 'Switzerland', + pricingPerYear: '$156', + slogan: 'Track all your assets, investments and portfolios in one place', + useAnonymously: true + }, { founded: 2011, hasFreePlan: true,