From dc8bcb450b0193b7e1c29f462aede04d57c76c55 Mon Sep 17 00:00:00 2001 From: esikkala <esko.ikkala@aalto.fi> Date: Wed, 27 Feb 2019 13:35:41 +0200 Subject: [PATCH] Update error handling --- src/client/actions/index.js | 8 +++--- src/client/epics/index.js | 45 +++++++++++++++++------------- src/client/index.js | 3 +- src/client/reducers/manuscripts.js | 22 +++++---------- 4 files changed, 37 insertions(+), 41 deletions(-) diff --git a/src/client/actions/index.js b/src/client/actions/index.js index ae3c8032..2caa7c95 100644 --- a/src/client/actions/index.js +++ b/src/client/actions/index.js @@ -19,9 +19,9 @@ export const fetchPaginatedResults = (resultClass, facetClass, variant) => ({ type: FETCH_PAGINATED_RESULTS, resultClass, facetClass, variant }); -export const fetchPaginatedResultsFailed = (resultClass, message) => ({ +export const fetchPaginatedResultsFailed = (resultClass, error, message) => ({ type: FETCH_PAGINATED_RESULTS_FAILED, - resultClass, message + resultClass, error, message }); export const fetchResults = (resultClass, facetClass, variant) => ({ type: FETCH_RESULTS, @@ -51,9 +51,9 @@ export const fetchFacet = (resultClass, id, sortBy, sortDirection) => ({ type: FETCH_FACET, resultClass, id, sortBy, sortDirection }); -export const fetchFacetFailed = (resultClass, id, message) => ({ +export const fetchFacetFailed = (resultClass, id, error, message) => ({ type: FETCH_FACET_FAILED, - resultClass, message + resultClass, id, error, message }); export const updateFacet = ({ resultClass, id, distinctValueCount, values, flatValues, sortBy, sortDirection }) => ({ type: UPDATE_FACET, diff --git a/src/client/epics/index.js b/src/client/epics/index.js index 4839a467..7f8d7ae9 100644 --- a/src/client/epics/index.js +++ b/src/client/epics/index.js @@ -10,7 +10,7 @@ import { FETCH_BY_URI, FETCH_FACET, FETCH_FACET_FAILED, - SHOW_ERROR, + //SHOW_ERROR, updateResults, updateInstance, updateFacet, @@ -20,6 +20,8 @@ const apiUrl = (process.env.NODE_ENV === 'development') ? 'http://localhost:3001/api/' : `http://${location.hostname}/api/`; +const backendErrorText = 'Cannot connect to MMM Knowledge Base. A data conversion process might be running. Please try again later.'; + const fetchPaginatedResultsEpic = (action$, state$) => action$.pipe( ofType(FETCH_PAGINATED_RESULTS), withLatestFrom(state$), @@ -32,9 +34,10 @@ const fetchPaginatedResultsEpic = (action$, state$) => action$.pipe( catchError(error => of({ type: FETCH_PAGINATED_RESULTS_FAILED, resultClass: resultClass, + error: error, message: { - text: error.xhr.statusText, - title: '' + text: backendErrorText, + title: 'Error' } })) ); @@ -50,14 +53,15 @@ const fetchResultsEpic = (action$, state$) => action$.pipe( const requestUrl = `${apiUrl}${resultClass}/all?${params}`; return ajax.getJSON(requestUrl).pipe( map(response => updateResults({ resultClass: resultClass, data: response })), - catchError(error => of({ - type: SHOW_ERROR, - resultClass: resultClass, - message: { - text: error.xhr.statusText, - title: '' - } - })) + // catchError(error => of({ + // type: SHOW_ERROR, + // resultClass: resultClass, + // error: error, + // message: { + // text: backendErrorText, + // title: 'Error' + // } + // })) ); }) ); @@ -71,13 +75,13 @@ const fetchByURIEpic = (action$, state$) => action$.pipe( const requestUrl = `${apiUrl}${resultClass}/instance/${encodeURIComponent(uri)}?${params}`; return ajax.getJSON(requestUrl).pipe( map(response => updateInstance({ resultClass: resultClass, instance: response })), - catchError(error => of({ - type: SHOW_ERROR, - message: { - text: error.xhr.statusText, - title: '' - } - })) + // catchError(error => of({ + // type: SHOW_ERROR, + // message: { + // text: error.xhr.statusText, + // title: '' + // } + // })) ); }) ); @@ -116,9 +120,10 @@ const fetchFacetEpic = (action$, state$) => action$.pipe( type: FETCH_FACET_FAILED, resultClass: action.resultClass, id: action.id, + error: error, message: { - text: error.xhr.statusText, - title: '' + text: backendErrorText, + title: 'Error' } })) ); diff --git a/src/client/index.js b/src/client/index.js index a0b13f4f..855e54b0 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -38,13 +38,12 @@ render( <App /> </Router> <ReduxToastr - timeOut={4000} + timeOut={0} newestOnTop={false} preventDuplicates position="top-center" transitionIn="fadeIn" transitionOut="fadeOut" - progressBar /> </div> </Provider>, diff --git a/src/client/reducers/manuscripts.js b/src/client/reducers/manuscripts.js index 39ec36c5..a58796b6 100644 --- a/src/client/reducers/manuscripts.js +++ b/src/client/reducers/manuscripts.js @@ -101,21 +101,13 @@ const manuscripts = (state = INITIAL_STATE, action) => { case SORT_RESULTS: return updateSortBy(state, action); case UPDATE_RESULTS: - if (action.data !== null) { - return { - ...state, - resultCount: parseInt(action.data.resultCount), - results: action.data.results, - fetching: false - }; - } else { - return { - ...state, - results: [], - resultCount: 0, - fetching: false - }; - } + // console.log(action) + return { + ...state, + resultCount: parseInt(action.data.resultCount), + results: action.data.results, + fetching: false + }; case UPDATE_INSTANCE: return { ...state, -- GitLab