Browse Source

Feature/ extend market data with preset by activities count and date

pull/3460/head
José Marinho 1 year ago
committed by Thomas Kaul
parent
commit
cc89719cc2
  1. 42
      apps/api/src/app/admin/admin.service.ts
  2. 4
      libs/common/src/lib/interfaces/admin-market-data.interface.ts

42
apps/api/src/app/admin/admin.service.ts

@ -409,9 +409,13 @@ export class AdminService {
by: ['dataSource', 'symbol']
});
const marketData: AdminMarketDataItem[] = this.exchangeRateDataService
const marketDataPromise: Promise<AdminMarketDataItem>[] =
this.exchangeRateDataService
.getCurrencyPairs()
.map(({ dataSource, symbol }) => {
.map(async ({ dataSource, symbol }) => {
let date: Date = null;
let activitiesCount = 0;
const marketDataItemCount =
marketDataItems.find((marketDataItem) => {
return (
@ -420,19 +424,45 @@ export class AdminService {
);
})?._count ?? 0;
const symbolProfile =
await this.prismaService.symbolProfile.findFirst({
where: { symbol, dataSource }
});
if (symbolProfile?.id) {
const orders = await this.prismaService.order.findMany({
orderBy: { date: 'asc' },
where: { symbolProfileId: symbolProfile.id }
});
activitiesCount = orders.length;
}
if (activitiesCount > 0) {
const earliestId = await this.prismaService.order.findFirst({
orderBy: {
date: 'asc'
},
where: { symbolProfileId: symbolProfile?.id }
});
date = earliestId.date;
}
return {
dataSource,
marketDataItemCount,
symbol,
activitiesCount,
assetClass: AssetClass.LIQUIDITY,
countriesCount: 0,
currency: symbol.replace(DEFAULT_CURRENCY, ''),
dataSource,
date,
id: undefined,
marketDataItemCount,
name: symbol,
sectorsCount: 0
sectorsCount: 0,
symbol
};
});
const marketData = await Promise.all(marketDataPromise);
return { marketData, count: marketData.length };
}

4
libs/common/src/lib/interfaces/admin-market-data.interface.ts

@ -6,13 +6,13 @@ export interface AdminMarketData {
}
export interface AdminMarketDataItem {
activitiesCount?: number;
activitiesCount: number;
assetClass?: AssetClass;
assetSubClass?: AssetSubClass;
countriesCount: number;
currency: string;
dataSource: DataSource;
date?: Date;
date: Date;
id: string;
isBenchmark?: boolean;
marketDataItemCount: number;

Loading…
Cancel
Save