Feature/extend market data with currencies preset by activities count and date (#3460)

* Extend market data with currencies preset by activities count and date

* Update changelog
pull/3489/head
Eduardo Marinho 9 months ago committed by GitHub
parent e5d8faf2dc
commit 873fd53715
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased ## Unreleased
### Added
- Extended the historical market data table with currencies preset by date and activities count in the admin control panel
### Changed ### Changed
- Improved the language localization for German (`de`) - Improved the language localization for German (`de`)

@ -409,30 +409,49 @@ export class AdminService {
by: ['dataSource', 'symbol'] by: ['dataSource', 'symbol']
}); });
const marketData: AdminMarketDataItem[] = this.exchangeRateDataService const marketDataPromise: Promise<AdminMarketDataItem>[] =
.getCurrencyPairs() this.exchangeRateDataService
.map(({ dataSource, symbol }) => { .getCurrencyPairs()
const marketDataItemCount = .map(async ({ dataSource, symbol }) => {
marketDataItems.find((marketDataItem) => { const currency = symbol.replace(DEFAULT_CURRENCY, '');
return (
marketDataItem.dataSource === dataSource && const { _count, _min } = await this.prismaService.order.aggregate({
marketDataItem.symbol === symbol _count: true,
); _min: {
})?._count ?? 0; date: true
},
where: {
SymbolProfile: {
currency
}
}
});
return { const marketDataItemCount =
dataSource, marketDataItems.find((marketDataItem) => {
marketDataItemCount, return (
symbol, marketDataItem.dataSource === dataSource &&
assetClass: AssetClass.LIQUIDITY, marketDataItem.symbol === symbol
countriesCount: 0, );
currency: symbol.replace(DEFAULT_CURRENCY, ''), })?._count ?? 0;
id: undefined,
name: symbol, return {
sectorsCount: 0 currency,
}; dataSource,
}); marketDataItemCount,
symbol,
activitiesCount: _count as number,
assetClass: AssetClass.LIQUIDITY,
assetSubClass: AssetSubClass.CASH,
countriesCount: 0,
date: _min.date,
id: undefined,
name: symbol,
sectorsCount: 0
};
});
const marketData = await Promise.all(marketDataPromise);
return { marketData, count: marketData.length }; return { marketData, count: marketData.length };
} }

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

Loading…
Cancel
Save