import axios from 'axios'; import qs from 'qs'; import {updateMessages} from '../actions/notification/notificationActions'; import {authActivity} from '../constants/authConstants'; import {notificationMessages} from '../constants/notificationConstants'; import {store} from '../configureStore'; const getAuthLocalToken = () => { return localStorage.accessToken || ''; } const defaultParams = () => ({ method: 'get', responseType: 'json', headers: getAuthLocalToken() !== '' ? { Authorization: 'Bearer ' + getAuthLocalToken() } : { } }); const uploadParams = () =>({ method: 'post', responseType: 'json', headers: { Authorization: 'Bearer ' + getAuthLocalToken(), 'content-type': 'multipart/form-data' } }); class HtmlClient { fetch(configParams) { if(configParams.data){ configParams.data = qs.stringify(configParams.data); } const params = Object.assign({}, defaultParams(), configParams); authActivity.lastActivity = Date.now(); return axios(params); }; uploadFile(file, configParams = null) { let formData = new FormData(); formData.append('file', file, file.name); /* if(configParams) { Object.keys(configParams.data).forEach((paramKey) => { formData.append(paramKey, configParams.data[paramKey]); }); }*/ configParams.data = formData; const params = Object.assign({}, uploadParams(), configParams); return axios(params); } onError(error) { store.dispatch(updateMessages([{code:'error', message: 'HTML_ERROR'}], notificationMessages)); } } export default HtmlClient;