mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +02:00
36 lines
762 B
JavaScript
36 lines
762 B
JavaScript
|
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;
|