diff --git a/src/js/services/core/actions.js b/src/js/services/core/actions.js index 0d45748a..76b84123 100755 --- a/src/js/services/core/actions.js +++ b/src/js/services/core/actions.js @@ -17,7 +17,17 @@ export function getBroadcasts(){ }) }, (xhr, status, error) => { - console.error('Could not fetch broadcasts from GitHub') + dispatch( + handleException( + 'Could not fetch broadcasts from GitHub', + { + config: config, + xhr: xhr, + status: status, + error: error + } + ) + ); } ) } diff --git a/src/js/services/core/middleware.js b/src/js/services/core/middleware.js index ecbe08ab..4739755e 100755 --- a/src/js/services/core/middleware.js +++ b/src/js/services/core/middleware.js @@ -19,28 +19,36 @@ const CoreMiddleware = (function(){ switch(action.type){ case 'HANDLE_EXCEPTION': - var state = Object.assign({}, store.getState()); + var message = action.message; + var state = store.getState(); + var exported_state = { + core: Object.assign({},state.core), + ui: Object.assign({},state.ui), + spotify: Object.assign({},state.spotify), + mopidy: Object.assign({},state.mopidy), + pusher: Object.assign({},state.pusher) + } // Strip out non-essential store info - delete state.core.albums - delete state.core.artists - delete state.core.playlists - delete state.core.users - delete state.core.queue_metadata - delete state.core.current_tracklist - delete state.spotify.library_albums - delete state.spotify.library_artists - delete state.spotify.library_playlists - delete state.spotify.autocomplete_results - delete state.mopidy.library_albums - delete state.mopidy.library_artists - delete state.mopidy.library_playlists + delete exported_state.core.albums + delete exported_state.core.artists + delete exported_state.core.playlists + delete exported_state.core.users + delete exported_state.core.queue_metadata + delete exported_state.core.current_tracklist + delete exported_state.spotify.library_albums + delete exported_state.spotify.library_artists + delete exported_state.spotify.library_playlists + delete exported_state.spotify.autocomplete_results + delete exported_state.mopidy.library_albums + delete exported_state.mopidy.library_artists + delete exported_state.mopidy.library_playlists var data = Object.assign( {}, action.data, { - state: state + state: exported_state } ); @@ -51,7 +59,12 @@ const CoreMiddleware = (function(){ } ); - store.dispatch(uiActions.createNotification(action.message,'bad')); + var xhr_response = JSON.parse(action.data.xhr.responseText); + if (xhr_response.error && xhr_response.error.message){ + message = message +": "+ xhr_response.error.message; + } + + store.dispatch(uiActions.createNotification(message,'bad')); console.error(action.message, data); break; diff --git a/src/js/services/spotify/actions.js b/src/js/services/spotify/actions.js index b31a64c1..871f52ca 100755 --- a/src/js/services/spotify/actions.js +++ b/src/js/services/spotify/actions.js @@ -68,7 +68,7 @@ const sendRequest = ( dispatch, getState, endpoint, method = 'GET', data = false xhr: xhr, status: status, error: error - }) + }); } ) }, diff --git a/src/js/services/spotify/middleware.js b/src/js/services/spotify/middleware.js index 4132c64a..e5d17116 100755 --- a/src/js/services/spotify/middleware.js +++ b/src/js/services/spotify/middleware.js @@ -76,37 +76,36 @@ const SpotifyMiddleware = (function(){ ReactGA.event({ category: 'Spotify', action: 'Recommendations', label: action.seeds_uris.join(',') }) } next(action) - break + break; case 'SPOTIFY_USER_LOADED': if (action.data) ReactGA.event({ category: 'User', action: 'Load', label: action.data.uri }) next(action) - break + break; case 'SPOTIFY_CREATE_PLAYLIST': store.dispatch( spotifyActions.createPlaylist( action.name, action.description, action.is_private, action.is_collaborative )) - break + break; case 'SPOTIFY_REMOVE_PLAYLIST_TRACKS': var playlist = Object.assign({},state.core.playlists[action.key]); - store.dispatch( spotifyActions.deleteTracksFromPlaylist( playlist.uri, playlist.snapshot_id, action.tracks_indexes )) - break + break; case 'SPOTIFY_ADD_PLAYLIST_TRACKS': store.dispatch( spotifyActions.addTracksToPlaylist( action.key, action.tracks_uris )) - break + break; case 'SPOTIFY_REORDER_PLAYLIST_TRACKS': store.dispatch( spotifyActions.reorderPlaylistTracks( action.key, action.range_start, action.range_length, action.insert_before, action.snapshot_id )) - break + break; case 'SPOTIFY_SAVE_PLAYLIST': store.dispatch( spotifyActions.savePlaylist( action.key, action.name, action.description, action.is_public, action.is_collaborative )) - break + break; case 'SPOTIFY_NEW_RELEASES_LOADED': store.dispatch({