@@ -32,61 +32,32 @@ const client = axios.create({
3232client . interceptors . response . use (
3333 response => response ,
3434 error => {
35- let message ;
36- let url ;
37- let config ;
35+ const url = error . config . url ;
36+ let message = error . message ;
37+ let status = 0 ;
3838 if ( error . response ) {
39- config = error . response . config ;
40- url = config . url ;
39+ status = error . response . status ;
4140 message = error . response . statusText ;
4241 // Don't send a Sentry report for permissions errors
4342 // Many 404s are in fact also unauthorized requests so
4443 // we should silence those on the front end and try
4544 // to catch legitimate request issues in the backend.
4645 //
4746 // Allow 412 too as that's specific to out of storage checks
48- if (
49- error . response . status === 403 ||
50- error . response . status === 404 ||
51- error . response . status === 405 ||
52- error . response . status === 412
53- ) {
47+ if ( status === 403 || status === 404 || status === 405 || status === 412 ) {
5448 return Promise . reject ( error ) ;
5549 }
56-
57- if ( error . response . status === 0 ) {
58- message = 'Network Error: ' + url ;
59- }
60-
61- // Put the URL in the main message for timeouts
62- // so we can see which timeouts are most frequent.
63- if ( error . response . status === 504 ) {
64- message = 'Request Timed Out: ' + url ;
65- }
66- } else if ( error . request && error . request . config ) {
67- // Request was sent but no response received
68- config = error . request . config ;
69- url = config . url ;
70- message = 'Network Error: ' + url ;
71- } else {
72- message = error . message ;
7350 }
7451
75- const extraData = {
76- url,
77- type : config ? config . responseType : null ,
78- data : config ? config . data : null ,
79- status : error . response ? error . response . status : null ,
80- error : message ,
81- response : error . response ? error . response . data : null ,
82- } ;
52+ message = message ? `${ message } : ${ url } ` : `Network Error: ${ url } ` ;
53+
8354 if ( process . env . NODE_ENV !== 'production' ) {
8455 // In dev build log warnings to console for developer use
8556 console . warn ( 'AJAX Request Error: ' + message ) ; // eslint-disable-line no-console
86- console . warn ( 'Error data: ' + JSON . stringify ( extraData ) ) ; // eslint-disable-line no-console
57+ console . warn ( 'Error data: ' + JSON . stringify ( error ) ) ; // eslint-disable-line no-console
8758 } else {
88- Sentry . captureMessage ( message , {
89- extra : extraData ,
59+ Sentry . captureException ( new Error ( message ) , {
60+ contexts : { error } ,
9061 } ) ;
9162 }
9263 return Promise . reject ( error ) ;
0 commit comments