Browse Source

Feature/improve handling of schema validation errors in search of Yahoo Finance service (#4744)

* Improve handling of schema validation errors

* Update changelog
pull/4746/head
Thomas Kaul 1 month ago
committed by GitHub
parent
commit
1a247d6e97
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 17
      apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts

1
CHANGELOG.md

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Increased the robustness of the search in the _Yahoo Finance_ service by catching schema validation errors
- Improved the symbol lookup results by removing the currency from the name of cryptocurrencies (experimental) - Improved the symbol lookup results by removing the currency from the name of cryptocurrencies (experimental)
- Harmonized the data providers management style of the admin control panel - Harmonized the data providers management style of the admin control panel
- Extended the data providers management of the admin control panel by the asset profile count - Extended the data providers management of the admin control panel by the asset profile count

17
apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts

@ -30,8 +30,11 @@ import {
HistoricalDividendsResult, HistoricalDividendsResult,
HistoricalHistoryResult HistoricalHistoryResult
} from 'yahoo-finance2/esm/src/modules/historical'; } from 'yahoo-finance2/esm/src/modules/historical';
import { Quote } from 'yahoo-finance2/esm/src/modules/quote'; import {
import { SearchQuoteNonYahoo } from 'yahoo-finance2/script/src/modules/search'; Quote,
QuoteResponseArray
} from 'yahoo-finance2/esm/src/modules/quote';
import { SearchQuoteNonYahoo } from 'yahoo-finance2/esm/src/modules/search';
@Injectable() @Injectable()
export class YahooFinanceService implements DataProviderInterface { export class YahooFinanceService implements DataProviderInterface {
@ -281,11 +284,19 @@ export class YahooFinanceService implements DataProviderInterface {
return true; return true;
}); });
const marketData = await this.yahooFinance.quote( let marketData: QuoteResponseArray = [];
try {
marketData = await this.yahooFinance.quote(
quotes.map(({ symbol }) => { quotes.map(({ symbol }) => {
return symbol; return symbol;
}) })
); );
} catch (error) {
if (error?.result?.length > 0) {
marketData = error.result;
}
}
for (const marketDataItem of marketData) { for (const marketDataItem of marketData) {
const quote = quotes.find((currentQuote) => { const quote = quotes.find((currentQuote) => {

Loading…
Cancel
Save