diff --git a/src/client/types.ts b/src/client/types.ts index 03b28fd..0be6a88 100644 --- a/src/client/types.ts +++ b/src/client/types.ts @@ -18,6 +18,7 @@ export interface IPutioAPIClientErrorData { error_type: string error_message: string status_code: number + extra: Record } export interface IPutioAPIClientError diff --git a/src/interceptors/response/clientIPChangeEmitter.spec.ts b/src/interceptors/response/clientIPChangeEmitter.spec.ts index 9ab5eaa..09652b0 100644 --- a/src/interceptors/response/clientIPChangeEmitter.spec.ts +++ b/src/interceptors/response/clientIPChangeEmitter.spec.ts @@ -110,6 +110,7 @@ describe('interceptors/response/clientIPChangeEmitter', () => { error_type: 'API_ERROR', error_message: 'Putio API Error', status_code: 400, + extra: { foo: 'bar' }, }, headers: { 'putio-client-ip': '0.0.0.0' }, status: 400, diff --git a/src/interceptors/response/errorEmitter.spec.ts b/src/interceptors/response/errorEmitter.spec.ts index ff3c246..e0d8f1e 100644 --- a/src/interceptors/response/errorEmitter.spec.ts +++ b/src/interceptors/response/errorEmitter.spec.ts @@ -30,6 +30,7 @@ describe('interceptors/response/errorEmitter', () => { status_code: 400, error_type: 'API_ERROR', error_message: 'Putio API Error', + extra: { foo: 'bar' }, }, headers: {}, status: 400, diff --git a/src/interceptors/response/responseFormatter.spec.ts b/src/interceptors/response/responseFormatter.spec.ts index acf3ba2..8521030 100644 --- a/src/interceptors/response/responseFormatter.spec.ts +++ b/src/interceptors/response/responseFormatter.spec.ts @@ -44,6 +44,7 @@ describe('interceptors/response/responseFormatter', () => { error_type: 'API_ERROR', error_message: 'Putio API Error', status_code: 400, + extra: { foo: 'bar' }, }, headers: { 'x-trace-id': 'MOCK_TRACE_ID', @@ -58,6 +59,9 @@ describe('interceptors/response/responseFormatter', () => { Object { "error_message": "Putio API Error", "error_type": "API_ERROR", + "extra": Object { + "foo": "bar", + }, "status_code": 400, "x-trace-id": "MOCK_TRACE_ID", } @@ -84,6 +88,7 @@ describe('interceptors/response/responseFormatter', () => { Object { "error_message": "AXIOS_ERROR_MESSAGE", "error_type": "ERROR", + "extra": Object {}, "status_code": 502, "x-trace-id": undefined, } @@ -97,6 +102,7 @@ describe('interceptors/response/responseFormatter', () => { Object { "error_message": "AXIOS_ERROR_MESSAGE", "error_type": "ERROR", + "extra": Object {}, "status_code": 0, "x-trace-id": undefined, } @@ -120,6 +126,7 @@ describe('interceptors/response/responseFormatter', () => { Object { "error_message": "AXIOS_ERROR_MESSAGE", "error_type": "ERROR", + "extra": Object {}, "foo": "bar", "status_code": 400, "x-trace-id": undefined, @@ -144,6 +151,9 @@ describe('interceptors/response/responseFormatter', () => { Object { "error_message": "MOCK_MESSAGE", "error_type": "MOCK_ERROR", + "extra": Object { + "foo": "bar", + }, "status_code": 0, } `), diff --git a/src/interceptors/response/responseFormatter.ts b/src/interceptors/response/responseFormatter.ts index 9879525..2d021fd 100644 --- a/src/interceptors/response/responseFormatter.ts +++ b/src/interceptors/response/responseFormatter.ts @@ -23,6 +23,7 @@ export const createResponseFormatter: PutioAPIClientResponseInterceptorFactory = error_message: error.message, error_type: 'ERROR', status_code: 0, + extra: {}, } if (error.response && error.response.data) { diff --git a/src/test-utils/mocks.ts b/src/test-utils/mocks.ts index 4f1d933..c21896d 100644 --- a/src/test-utils/mocks.ts +++ b/src/test-utils/mocks.ts @@ -38,6 +38,7 @@ export const mockPutioAPIClientError: IPutioAPIClientError = { error_type: 'MOCK_ERROR', error_message: 'MOCK_MESSAGE', status_code: 0, + extra: { foo: 'bar' }, }, toJSON() { return this.data