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
- 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

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

@ -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) => {

Loading…
Cancel
Save