waffle/frontend/src/request.js

42 lines
902 B
JavaScript
Raw Normal View History

import { getAuthToken } from "./storage";
export default async function(method, endpoint, auth=true, body=null) {
const options = {
method,
};
if (body) {
options.headers = {
...options.headers || {},
"Content-Type": "application/json"
};
}
if (auth) {
const token = getAuthToken();
if (token) {
options.headers = {
...options.headers || {},
"Authorization": `Bearer ${token}`
};
}
}
try {
const res = await fetch(endpoint, options);
return {
success: true,
json: await res.json(),
ok: res.ok,
status: res.status
}
} catch (e) {
return {
success: false,
json: null,
ok: false,
status: null
}
}
}