diff --git a/packages/backend/src/errors/http-error.ts b/packages/backend/src/errors/http-error.ts new file mode 100644 index 00000000..2e71ebeb --- /dev/null +++ b/packages/backend/src/errors/http-error.ts @@ -0,0 +1,3 @@ +import BaseError from './base'; + +export default class HttpError extends BaseError {} diff --git a/packages/backend/src/helpers/http-client/index.ts b/packages/backend/src/helpers/http-client/index.ts index c6346e9f..611d5d9b 100644 --- a/packages/backend/src/helpers/http-client/index.ts +++ b/packages/backend/src/helpers/http-client/index.ts @@ -2,6 +2,7 @@ import axios, { AxiosRequestConfig } from 'axios'; export { AxiosInstance as IHttpClient } from 'axios'; import { IHttpClientParams } from '@automatisch/types'; import { URL } from 'url'; +import HttpError from '../../errors/http-error'; const removeBaseUrlForAbsoluteUrls = ( requestConfig: AxiosRequestConfig @@ -39,8 +40,7 @@ export default function createHttpClient({ instance.interceptors.response.use( (response) => response, (error) => { - error.response.httpError = error.response.data; - throw error; + throw new HttpError(error.response.data); } ); diff --git a/packages/backend/src/services/flow.ts b/packages/backend/src/services/flow.ts index 8e481444..82cc8aa3 100644 --- a/packages/backend/src/services/flow.ts +++ b/packages/backend/src/services/flow.ts @@ -1,6 +1,7 @@ import Flow from '../models/flow'; import globalVariable from '../helpers/global-variable'; import EarlyExitError from '../errors/early-exit'; +import HttpError from '../errors/http-error'; type ProcessFlowOptions = { flowId: string; @@ -25,8 +26,8 @@ export const processFlow = async (options: ProcessFlowOptions) => { await triggerCommand.run($); } catch (error) { if (error instanceof EarlyExitError === false) { - if (error?.response?.httpError) { - $.triggerOutput.error = error.response.httpError; + if (error instanceof HttpError) { + $.triggerOutput.error = error.error; } else { try { $.triggerOutput.error = JSON.parse(error.message);