Feature/parallelize asset profile requests in get quotes functionality of Financial Modeling Prep service (#4569)
* Parallelize asset profile requests * Update changelog
This commit is contained in:
parent
de6c416639
commit
1ae5ba7f8a
@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Changed
|
||||
|
||||
- Made the historical market data editor expandable in the admin control panel
|
||||
- Parallelized the requests in the get quotes functionality of the _Financial Modeling Prep_ service
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -357,6 +357,10 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
|
||||
try {
|
||||
const currencyBySymbolMap: {
|
||||
[symbol: string]: Pick<SymbolProfile, 'currency'>;
|
||||
} = {};
|
||||
|
||||
const quotes = await fetch(
|
||||
`${this.getUrl({ version: 'stable' })}/batch-quote-short?symbols=${symbols.join(',')}&apikey=${this.apiKey}`,
|
||||
{
|
||||
@ -364,11 +368,17 @@ export class FinancialModelingPrepService implements DataProviderInterface {
|
||||
}
|
||||
).then((res) => res.json());
|
||||
|
||||
for (const { price, symbol } of quotes) {
|
||||
const { currency } = await this.getAssetProfile({ symbol });
|
||||
await Promise.all(
|
||||
quotes.map(({ symbol }) => {
|
||||
return this.getAssetProfile({ symbol }).then(({ currency }) => {
|
||||
currencyBySymbolMap[symbol] = { currency };
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
for (const { price, symbol } of quotes) {
|
||||
response[symbol] = {
|
||||
currency,
|
||||
currency: currencyBySymbolMap[symbol]?.currency,
|
||||
dataProviderInfo: this.getDataProviderInfo(),
|
||||
dataSource: DataSource.FINANCIAL_MODELING_PREP,
|
||||
marketPrice: price,
|
||||
|
Loading…
x
Reference in New Issue
Block a user