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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
19 additions and
7 deletions
-
CHANGELOG.md
-
apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts
|
|
@ -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 |
|
|
|
|
|
@ -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) => { |
|
|
|