diff --git a/api/error.ts b/api/error.ts index 13ece56..ac582f9 100644 --- a/api/error.ts +++ b/api/error.ts @@ -1,4 +1,11 @@ -export interface ApiError { +export class ApiError extends Error { errorCode: number errorMessage: Nullable + + constructor(error: any) { + super(error.message) + + this.errorCode = error?.response?.data?.errorCode ?? -1 + this.errorMessage = error?.response?.data?.errorMessage + } } diff --git a/api/request.ts b/api/request.ts index 8ef08a2..bfe318a 100644 --- a/api/request.ts +++ b/api/request.ts @@ -1,6 +1,7 @@ import axios, { AxiosRequestConfig } from 'axios' import logger from 'lib/logger' +import { ApiError } from './error' const retrieve = async ( props: AxiosRequestConfig, @@ -15,7 +16,7 @@ const retrieve = async ( return retrieve(props, true) } - throw new Error(err) + throw new ApiError(err) } }