From d3b5f6da1a33400b50b14e67284963a34093211c Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 25 Nov 2023 17:54:07 +0100 Subject: [PATCH] Improve error log for timeouts --- .../coingecko/coingecko.service.ts | 24 ++++++++++++++++--- .../eod-historical-data.service.ts | 16 +++++++++++-- .../financial-modeling-prep.service.ts | 16 +++++++++++-- .../rapid-api/rapid-api.service.ts | 8 ++++++- 4 files changed, 56 insertions(+), 8 deletions(-) diff --git a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts index 6ed67bf8b..fe155d767 100644 --- a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts +++ b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts @@ -56,7 +56,13 @@ export class CoinGeckoService implements DataProviderInterface { response.name = name; } catch (error) { - Logger.error(error, 'CoinGeckoService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'CoinGeckoService'); } return response; @@ -174,7 +180,13 @@ export class CoinGeckoService implements DataProviderInterface { }; } } catch (error) { - Logger.error(error, 'CoinGeckoService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'CoinGeckoService'); } return response; @@ -216,7 +228,13 @@ export class CoinGeckoService implements DataProviderInterface { }; }); } catch (error) { - Logger.error(error, 'CoinGeckoService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'CoinGeckoService'); } return { items }; diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index a582a953d..448d54b25 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -229,7 +229,13 @@ export class EodHistoricalDataService implements DataProviderInterface { return response; } catch (error) { - Logger.error(error, 'EodHistoricalDataService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'EodHistoricalDataService'); } return {}; @@ -382,7 +388,13 @@ export class EodHistoricalDataService implements DataProviderInterface { } ); } catch (error) { - Logger.error(error, 'EodHistoricalDataService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'EodHistoricalDataService'); } return searchResult; diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 8c27f01a6..1c3db1520 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -151,7 +151,13 @@ export class FinancialModelingPrepService implements DataProviderInterface { }; } } catch (error) { - Logger.error(error, 'FinancialModelingPrepService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'FinancialModelingPrepService'); } return response; @@ -196,7 +202,13 @@ export class FinancialModelingPrepService implements DataProviderInterface { }; }); } catch (error) { - Logger.error(error, 'FinancialModelingPrepService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'FinancialModelingPrepService'); } return { items }; diff --git a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts index 5e833cbf1..5c2df222c 100644 --- a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts +++ b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts @@ -163,7 +163,13 @@ export class RapidApiService implements DataProviderInterface { return fgi; } catch (error) { - Logger.error(error, 'RapidApiService'); + let message = error; + + if (error?.code === 'ABORT_ERR') { + message = `RequestError: The operation was aborted because the request to the data provider took more than ${DEFAULT_REQUEST_TIMEOUT}ms`; + } + + Logger.error(message, 'RapidApiService'); return undefined; }