Bugfix/fix get quotes for multiple ghostfolio symbols (#758)

* Support multiple symbols in getQuotes()

* Update changelog
pull/759/head
Thomas Kaul 3 years ago committed by GitHub
parent 4826a51199
commit 402d73a12c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Improved the error handling in the scraper configuration - Improved the error handling in the scraper configuration
### Fixed
- Fixed the support for multiple symbols of the data source `GHOSTFOLIO`
## 1.126.0 - 14.03.2022 ## 1.126.0 - 14.03.2022
### Added ### Added

@ -84,33 +84,42 @@ export class GhostfolioScraperApiService implements DataProviderInterface {
public async getQuotes( public async getQuotes(
aSymbols: string[] aSymbols: string[]
): Promise<{ [symbol: string]: IDataProviderResponse }> { ): Promise<{ [symbol: string]: IDataProviderResponse }> {
const response: { [symbol: string]: IDataProviderResponse } = {};
if (aSymbols.length <= 0) { if (aSymbols.length <= 0) {
return {}; return response;
} }
try { try {
const [symbol] = aSymbols; const symbolProfiles = await this.symbolProfileService.getSymbolProfiles(
const [symbolProfile] = await this.symbolProfileService.getSymbolProfiles( aSymbols
[symbol]
); );
const { marketPrice } = await this.prismaService.marketData.findFirst({ const marketData = await this.prismaService.marketData.findMany({
distinct: ['symbol'],
orderBy: { orderBy: {
date: 'desc' date: 'desc'
}, },
take: aSymbols.length,
where: { where: {
symbol symbol: {
in: aSymbols
}
} }
}); });
return { for (const symbolProfile of symbolProfiles) {
[symbol]: { response[symbolProfile.symbol] = {
marketPrice, currency: symbolProfile.currency,
currency: symbolProfile?.currency,
dataSource: this.getName(), dataSource: this.getName(),
marketPrice: marketData.find((marketDataItem) => {
return marketDataItem.symbol === symbolProfile.symbol;
}).marketPrice,
marketState: MarketState.delayed marketState: MarketState.delayed
} };
}; }
return response;
} catch (error) { } catch (error) {
Logger.error(error, 'GhostfolioScraperApiService'); Logger.error(error, 'GhostfolioScraperApiService');
} }

Loading…
Cancel
Save