From 78423cfdcc073b824a16ef398a26c81c0bc6b2f5 Mon Sep 17 00:00:00 2001 From: Caroline Salib Date: Wed, 22 Apr 2020 08:17:17 -0600 Subject: [PATCH] Add class to handle api calls #134 --- app/javascript/api/railsApi.js | 19 +++++++++++++++++++ app/javascript/configureStore.js | 4 +++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 app/javascript/api/railsApi.js diff --git a/app/javascript/api/railsApi.js b/app/javascript/api/railsApi.js new file mode 100644 index 00000000..db031c31 --- /dev/null +++ b/app/javascript/api/railsApi.js @@ -0,0 +1,19 @@ +import { store } from '../configureStore'; +import {setErrorDialogMessage} from "../actions/dialogMessage"; + +const axios = require('axios'); + +class RailsApi { + handleError = (error) => { + store.dispatch(setErrorDialogMessage({error})) + } + + get(path, params = {}) { + return axios.get(path, { params }) + .catch((error) => { + this.handleError(error) + }); + }; +} + +export default new RailsApi; diff --git a/app/javascript/configureStore.js b/app/javascript/configureStore.js index 8fe806ef..ff789411 100644 --- a/app/javascript/configureStore.js +++ b/app/javascript/configureStore.js @@ -32,10 +32,12 @@ const rootReducer = combineReducers({ dialogMessage: dialogMessage, }); +export let store = null; + export default function configureStore(user) { const preloadedState = { app: { ...appReducerDefaultState, user } }; - const store = createStore( + store = createStore( rootReducer, preloadedState, composeWithDevTools(applyMiddleware(thunk))