1
- import axios , { AxiosError , AxiosResponse } from 'axios' ;
2
- import { EventBus } from '@/event-bus' ;
3
-
4
- export default class AxiosGlobalConfig {
5
- public static setup ( ) : void {
6
- axios . interceptors . response . use (
7
- ( response : AxiosResponse ) => {
8
- return response ;
9
- } ,
10
- ( error : AxiosError ) => {
11
- handleAxiosError ( error ) ;
12
- return Promise . reject ( error ) ;
13
- }
14
- ) ;
15
- }
16
- }
1
+ import { EventBus } from '@/event-bus' ;
2
+ import axios , { AxiosError , AxiosResponse } from 'axios' ;
17
3
18
4
const handleAxiosError = ( error : AxiosError ) : void => {
19
5
// Error Message Object
@@ -23,25 +9,29 @@ const handleAxiosError = (error: AxiosError): void => {
23
9
status : 500
24
10
} ;
25
11
26
- //Setup Error Message
27
- if ( typeof error !== 'undefined' ) {
28
- if ( error . hasOwnProperty ( 'message' ) ) {
29
- message . body = error . message ;
30
- }
12
+ // Setup Error Message
13
+ if ( typeof error !== 'undefined' && error . hasOwnProperty ( 'message' ) ) {
14
+ message . body = error . message ;
31
15
}
32
16
33
17
if ( typeof error . response !== 'undefined' ) {
34
18
// Setup Generic Response Messages
35
- if ( error . response . status === 401 ) {
36
- message . body = 'UnAuthorized' ;
37
- } else if ( error . response . status === 404 ) {
38
- message . body = 'API Route is Missing or Undefined' ;
39
- } else if ( error . response . status === 405 ) {
40
- message . body = 'API Route Method Not Allowed' ;
41
- } else if ( error . response . status === 422 ) {
42
- //Validation Message
43
- } else if ( error . response . status >= 500 ) {
44
- message . body = 'Internal Server Error' ;
19
+ switch ( error . response . status ) {
20
+ case 401 :
21
+ message . body = 'UnAuthorized' ;
22
+ break ;
23
+ case 404 :
24
+ message . body = 'API Route is Missing or Undefined' ;
25
+ break ;
26
+ case 405 :
27
+ message . body = 'API Route Method Not Allowed' ;
28
+ break ;
29
+ case 422 :
30
+ break ;
31
+ case 500 :
32
+ default :
33
+ message . body = 'Internal Server Error' ;
34
+ break ;
45
35
}
46
36
47
37
// Assign error status code
@@ -50,13 +40,34 @@ const handleAxiosError = (error: AxiosError): void => {
50
40
}
51
41
52
42
// Try to Use the Response Message
53
- if ( error . hasOwnProperty ( 'response' ) && error . response . hasOwnProperty ( 'data' ) ) {
54
- if ( error . response . data . hasOwnProperty ( 'message' ) && error . response . data . message . length > 0 ) {
55
- message . body = error . response . data . message ;
56
- }
43
+ if (
44
+ error . hasOwnProperty ( 'response' ) &&
45
+ error . response . hasOwnProperty ( 'data' ) &&
46
+ error . response . data . hasOwnProperty ( 'message' ) &&
47
+ ! ! error . response . data . message . length
48
+ ) {
49
+ message . body = error . response . data . message ;
57
50
}
58
51
}
59
52
53
+
60
54
// Log in console or use Snotify notification (via Global EventBus)
61
- EventBus . $snotify . error ( `${ message . status } (${ message . body } )` , 'XHR Error' ) ;
55
+ EventBus . $snotify . error (
56
+ `${ message . status } (${ message . body } )` ,
57
+ 'XHR Error'
58
+ ) ;
62
59
} ;
60
+
61
+ export default class AxiosGlobalConfig {
62
+ public static setup ( ) : void {
63
+ axios . interceptors . response . use (
64
+ ( response : AxiosResponse ) => {
65
+ return response ;
66
+ } ,
67
+ ( error : AxiosError ) => {
68
+ handleAxiosError ( error ) ;
69
+ return Promise . reject ( error ) ;
70
+ }
71
+ ) ;
72
+ }
73
+ }
0 commit comments