|
|
|
|
@ -68,14 +68,16 @@ export class GhostfolioService implements DataProviderInterface {
|
|
|
|
|
} catch (error) {
|
|
|
|
|
let message = error;
|
|
|
|
|
|
|
|
|
|
if (error.name === 'AbortError') {
|
|
|
|
|
message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${(
|
|
|
|
|
if (['AbortError', 'TimeoutError'].includes(error?.name)) {
|
|
|
|
|
message = `RequestError: The operation to get the asset profile for ${symbol} was aborted because the request to the data provider took more than ${(
|
|
|
|
|
requestTimeout / 1000
|
|
|
|
|
).toFixed(3)} seconds`;
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) {
|
|
|
|
|
} else if (
|
|
|
|
|
error?.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS
|
|
|
|
|
) {
|
|
|
|
|
message = 'RequestError: The daily request limit has been exceeded';
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) {
|
|
|
|
|
if (!error.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
} else if (error?.response?.statusCode === StatusCodes.UNAUTHORIZED) {
|
|
|
|
|
if (!error?.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
message =
|
|
|
|
|
'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.';
|
|
|
|
|
} else {
|
|
|
|
|
@ -229,14 +231,18 @@ export class GhostfolioService implements DataProviderInterface {
|
|
|
|
|
} catch (error) {
|
|
|
|
|
let message = error;
|
|
|
|
|
|
|
|
|
|
if (error.name === 'AbortError') {
|
|
|
|
|
message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${(
|
|
|
|
|
if (['AbortError', 'TimeoutError'].includes(error?.name)) {
|
|
|
|
|
message = `RequestError: The operation to get the quotes for ${symbols.join(
|
|
|
|
|
', '
|
|
|
|
|
)} was aborted because the request to the data provider took more than ${(
|
|
|
|
|
requestTimeout / 1000
|
|
|
|
|
).toFixed(3)} seconds`;
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) {
|
|
|
|
|
} else if (
|
|
|
|
|
error?.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS
|
|
|
|
|
) {
|
|
|
|
|
message = 'RequestError: The daily request limit has been exceeded';
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) {
|
|
|
|
|
if (!error.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
} else if (error?.response?.statusCode === StatusCodes.UNAUTHORIZED) {
|
|
|
|
|
if (!error?.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
message =
|
|
|
|
|
'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.';
|
|
|
|
|
} else {
|
|
|
|
|
@ -272,14 +278,16 @@ export class GhostfolioService implements DataProviderInterface {
|
|
|
|
|
} catch (error) {
|
|
|
|
|
let message = error;
|
|
|
|
|
|
|
|
|
|
if (error.name === 'AbortError') {
|
|
|
|
|
if (['AbortError', 'TimeoutError'].includes(error?.name)) {
|
|
|
|
|
message = `RequestError: The operation to search for ${query} was aborted because the request to the data provider took more than ${(
|
|
|
|
|
requestTimeout / 1000
|
|
|
|
|
).toFixed(3)} seconds`;
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) {
|
|
|
|
|
} else if (
|
|
|
|
|
error?.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS
|
|
|
|
|
) {
|
|
|
|
|
message = 'RequestError: The daily request limit has been exceeded';
|
|
|
|
|
} else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) {
|
|
|
|
|
if (!error.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
if (!error?.request?.options?.headers?.authorization?.includes('-')) {
|
|
|
|
|
message =
|
|
|
|
|
'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.';
|
|
|
|
|
} else {
|
|
|
|
|
|