From 79ef63a32021204bd0b3f6d926d169f19bc17292 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 4 Sep 2026 21:34:55 +0200 Subject: [PATCH] Fix storage of market data to store only newly fetched quotes --- .../data-provider/data-provider.service.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index 9366574ac..e4e49737a 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/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) &&