diff --git a/CHANGELOG.md b/CHANGELOG.md index 059e444ec..1a0d392a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed an issue with the renaming of activities with type `FEE`, `INTEREST`, `ITEM` or `LIABILITY` +- Handled an exception in the scraper configuration introduced by the migration from `got` to `fetch` ## 2.133.1 - 2025-01-09 diff --git a/apps/api/src/services/data-provider/manual/manual.service.ts b/apps/api/src/services/data-provider/manual/manual.service.ts index 9ba84d6d3..108ccbf89 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -273,38 +273,36 @@ export class ManualService implements DataProviderInterface { private async scrape( scraperConfiguration: ScraperConfiguration ): Promise { - try { - let locale = scraperConfiguration.locale; - const response = await fetch(scraperConfiguration.url, { - headers: scraperConfiguration.headers as HeadersInit, - signal: AbortSignal.timeout( - this.configurationService.get('REQUEST_TIMEOUT') - ) - }); + let locale = scraperConfiguration.locale; - if (response.headers['content-type'].includes('application/json')) { - const data = await response.json(); - const value = String( - jsonpath.query(data, scraperConfiguration.selector)[0] - ); + const response = await fetch(scraperConfiguration.url, { + headers: scraperConfiguration.headers as HeadersInit, + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) + }); - return extractNumberFromString({ locale, value }); - } else { - const $ = cheerio.load(await response.text()); + if (response.headers['content-type']?.includes('application/json')) { + const data = await response.json(); - if (!locale) { - try { - locale = $('html').attr('lang'); - } catch {} - } + const value = String( + jsonpath.query(data, scraperConfiguration.selector)[0] + ); - return extractNumberFromString({ - locale, - value: $(scraperConfiguration.selector).first().text() - }); + return extractNumberFromString({ locale, value }); + } else { + const $ = cheerio.load(await response.text()); + + if (!locale) { + try { + locale = $('html').attr('lang'); + } catch {} } - } catch (error) { - throw error; + + return extractNumberFromString({ + locale, + value: $(scraperConfiguration.selector).first().text() + }); } } }