Browse Source

Fix storage of market data to store only newly fetched quotes

pull/7814/head
Thomas Kaul 4 days ago
parent
commit
79ef63a320
  1. 15
      apps/api/src/services/data-provider/data-provider.service.ts

15
apps/api/src/services/data-provider/data-provider.service.ts

@ -725,6 +725,12 @@ export class DataProviderService implements OnModuleInit {
promises.push(
promise.then(async (result) => {
// Collect the quotes of this chunk to store only the fetched
// market data, not the entire response
const dataProviderResponses: (DataProviderResponse & {
symbol: string;
})[] = [];
for (const [symbol, dataProviderResponse] of Object.entries(
result
)) {
@ -739,6 +745,8 @@ export class DataProviderService implements OnModuleInit {
continue;
}
dataProviderResponses.push({ ...dataProviderResponse, symbol });
response[
getAssetProfileIdentifier({
symbol,
@ -772,6 +780,11 @@ export class DataProviderService implements OnModuleInit {
marketState: 'open'
};
dataProviderResponses.push({
...derivedDataProviderResponse,
symbol: `${DEFAULT_CURRENCY}${currency}`
});
response[
getAssetProfileIdentifier({
dataSource: DataSource[dataSource],
@ -805,7 +818,7 @@ export class DataProviderService implements OnModuleInit {
try {
await this.marketDataService.updateMany({
data: Object.values(response)
data: dataProviderResponses
.filter(({ marketPrice, marketState }) => {
return (
isNumber(marketPrice) &&

Loading…
Cancel
Save