Files
planka/client/src/api/http.js
Maksim Eltyshev 36fe34e8e1 Initial commit
2019-08-31 04:07:25 +05:00

36 lines
762 B
JavaScript
Executable File

import { fetch } from 'whatwg-fetch';
import Config from '../constants/Config';
const http = {};
// TODO: all methods
['POST'].forEach((method) => {
http[method.toLowerCase()] = (url, data, headers) => {
const formData = Object.keys(data).reduce((result, key) => {
result.append(key, data[key]);
return result;
}, new FormData());
return fetch(`${Config.API_URL}${Config.API_PATH}${url}`, {
method,
headers,
body: formData,
})
.then((response) => response.json().then((body) => ({
body,
isError: response.status !== 200,
})))
.then(({ body, isError }) => {
if (isError) {
throw body;
}
return body;
});
};
});
export default http;