68 lines
1.7 KiB
JavaScript
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;
|