From c3a54e0c6916b21f95353c26c84712a107523b74 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 28 Oct 2022 13:36:28 +0200 Subject: [PATCH] feat: Introduce http error class --- packages/backend/src/errors/http-error.ts | 3 +++ packages/backend/src/helpers/http-client/index.ts | 4 ++-- packages/backend/src/services/flow.ts | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 packages/backend/src/errors/http-error.ts 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);