@@ -3,9 +3,12 @@ import axios, { AxiosError, AxiosInstance } from 'axios'
33import { get } from 'lodash'
44import ResponseError from 'modules/Response/ResponseError'
55
6+ const AXIOS_TIMEOUT = process . env . AXIOS_TIMEOUT || 5000
7+
68function createAuthAxios ( baseURL : string ) : AxiosInstance {
79 const instanceAxios = axios . create ( {
810 baseURL,
11+ timeout : Number ( AXIOS_TIMEOUT ) ,
912 } )
1013
1114 instanceAxios . interceptors . request . use ( ( config ) => {
@@ -25,14 +28,30 @@ function createAuthAxios(baseURL: string): AxiosInstance {
2528 return response
2629 } ,
2730 function onError ( error : AxiosError ) {
28- const status = get ( error , 'response.status' , null )
29- if ( status === 401 ) {
31+ const statusCode = get ( error , 'response.status' , null )
32+ const message = get ( error , 'response.data.message' , null )
33+
34+ if ( statusCode === 401 ) {
3035 console . log ( 'Unauhtorized' )
31- return Promise . reject ( error )
36+ throw new ResponseError . Unauthorized ( message )
37+ }
38+
39+ if ( statusCode === 400 ) {
40+ console . log ( 'Bad Request' )
41+ throw new ResponseError . BadRequest ( message )
42+ }
43+
44+ if ( statusCode === 404 ) {
45+ console . log ( 'Not Found' )
46+ throw new ResponseError . NotFound ( message )
3247 }
3348
3449 const handleError = error ?. response ?. headers ?. handleError
3550 if ( ! handleError || ! handleError ( error ) ) {
51+ if ( error . code === 'ECONNREFUSED' ) {
52+ throw new ResponseError . InternalServer ( 'service unavailable' )
53+ }
54+
3655 console . log ( error . message )
3756 throw new ResponseError . BadRequest ( error . message )
3857 }
@@ -46,6 +65,7 @@ function createAuthAxios(baseURL: string): AxiosInstance {
4665function createDefaultAxios ( baseURL : string ) : AxiosInstance {
4766 const instanceAxios = axios . create ( {
4867 baseURL,
68+ timeout : Number ( AXIOS_TIMEOUT ) ,
4969 } )
5070
5171 instanceAxios . interceptors . response . use (
@@ -73,6 +93,10 @@ function createDefaultAxios(baseURL: string): AxiosInstance {
7393
7494 const handleError = error ?. response ?. headers ?. handleError
7595 if ( ! handleError || ! handleError ( error ) ) {
96+ if ( error . code === 'ECONNREFUSED' ) {
97+ throw new ResponseError . InternalServer ( 'service unavailable' )
98+ }
99+
76100 console . log ( error . message )
77101 throw new ResponseError . BadRequest ( error . message )
78102 }
0 commit comments