Unverified Commit 1a247d6e authored by Thomas Kaul's avatar Thomas Kaul Committed by GitHub
Browse files

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

* Improve handling of schema validation errors

* Update changelog
parent 90385157
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### 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)
- 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
+18 −7
Original line number Diff line number Diff line
@@ -30,8 +30,11 @@ import {
  HistoricalDividendsResult,
  HistoricalHistoryResult
} from 'yahoo-finance2/esm/src/modules/historical';
import { Quote } from 'yahoo-finance2/esm/src/modules/quote';
import { SearchQuoteNonYahoo } from 'yahoo-finance2/script/src/modules/search';
import {
  Quote,
  QuoteResponseArray
} from 'yahoo-finance2/esm/src/modules/quote';
import { SearchQuoteNonYahoo } from 'yahoo-finance2/esm/src/modules/search';

@Injectable()
export class YahooFinanceService implements DataProviderInterface {
@@ -281,11 +284,19 @@ export class YahooFinanceService implements DataProviderInterface {
          return true;
        });

      const marketData = await this.yahooFinance.quote(
      let marketData: QuoteResponseArray = [];

      try {
        marketData = await this.yahooFinance.quote(
          quotes.map(({ symbol }) => {
            return symbol;
          })
        );
      } catch (error) {
        if (error?.result?.length > 0) {
          marketData = error.result;
        }
      }

      for (const marketDataItem of marketData) {
        const quote = quotes.find((currentQuote) => {