Files
old-new-wiaas/frontend/src/helpers/HtmlClient.js
2018-08-29 09:12:46 +02:00

68 lines
1.7 KiB
JavaScript

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;