|
@ -29,7 +29,7 @@ import { |
|
|
Filter |
|
|
Filter |
|
|
} from '@ghostfolio/common/interfaces'; |
|
|
} from '@ghostfolio/common/interfaces'; |
|
|
import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; |
|
|
import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; |
|
|
import { MarketDataPreset, UserWithSettings } from '@ghostfolio/common/types'; |
|
|
import { MarketDataPreset } from '@ghostfolio/common/types'; |
|
|
|
|
|
|
|
|
import { |
|
|
import { |
|
|
BadRequestException, |
|
|
BadRequestException, |
|
@ -133,11 +133,8 @@ export class AdminService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public async get({ user }: { user: UserWithSettings }): Promise<AdminData> { |
|
|
public async get(): Promise<AdminData> { |
|
|
const dataSources = await this.dataProviderService.getDataSources({ |
|
|
const dataSources = Object.values(DataSource); |
|
|
user, |
|
|
|
|
|
includeGhostfolio: true |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const [settings, transactionCount, userCount] = await Promise.all([ |
|
|
const [settings, transactionCount, userCount] = await Promise.all([ |
|
|
this.propertyService.get(), |
|
|
this.propertyService.get(), |
|
@ -145,24 +142,31 @@ export class AdminService { |
|
|
this.countUsersWithAnalytics() |
|
|
this.countUsersWithAnalytics() |
|
|
]); |
|
|
]); |
|
|
|
|
|
|
|
|
const dataProviders = await Promise.all( |
|
|
const dataProviders = ( |
|
|
|
|
|
await Promise.all( |
|
|
dataSources.map(async (dataSource) => { |
|
|
dataSources.map(async (dataSource) => { |
|
|
const dataProviderInfo = this.dataProviderService |
|
|
const assetProfileCount = |
|
|
.getDataProvider(dataSource) |
|
|
await this.prismaService.symbolProfile.count({ |
|
|
.getDataProviderInfo(); |
|
|
|
|
|
|
|
|
|
|
|
const assetProfileCount = await this.prismaService.symbolProfile.count({ |
|
|
|
|
|
where: { |
|
|
where: { |
|
|
dataSource |
|
|
dataSource |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
if (assetProfileCount > 0 || dataSource === 'GHOSTFOLIO') { |
|
|
|
|
|
const dataProviderInfo = this.dataProviderService |
|
|
|
|
|
.getDataProvider(dataSource) |
|
|
|
|
|
.getDataProviderInfo(); |
|
|
|
|
|
|
|
|
return { |
|
|
return { |
|
|
...dataProviderInfo, |
|
|
...dataProviderInfo, |
|
|
assetProfileCount |
|
|
assetProfileCount |
|
|
}; |
|
|
}; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
}) |
|
|
}) |
|
|
); |
|
|
) |
|
|
|
|
|
).filter(Boolean); |
|
|
|
|
|
|
|
|
return { |
|
|
return { |
|
|
dataProviders, |
|
|
dataProviders, |
|
|