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

* Improve handling of schema validation errors

* Update changelog
This commit is contained in:
Thomas Kaul 2025-05-24 19:51:45 +01:00 committed by GitHub
parent 90385157d7
commit 1a247d6e97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 7 deletions

View File

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

View File

@ -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(
quotes.map(({ symbol }) => {
return symbol;
})
);
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) => {