Create base webui
This commit is contained in:
48
webui/src/common/utils/RequestUtil.js
Normal file
48
webui/src/common/utils/RequestUtil.js
Normal file
@@ -0,0 +1,48 @@
|
||||
export const request = async (url, method, body, headers) => {
|
||||
url = url.startsWith("/") ? url.substring(1) : url;
|
||||
|
||||
const response = await fetch(`/api/${url}`, {
|
||||
method: method,
|
||||
headers: {...headers, "Content-Type": "application/json"},
|
||||
body: JSON.stringify(body)
|
||||
});
|
||||
|
||||
if (response.status === 401) throw new Error("Unauthorized");
|
||||
|
||||
const rawData = await response.text();
|
||||
const data = rawData ? JSON.parse(rawData) : rawData.toString();
|
||||
|
||||
if (data.code >= 300) throw data;
|
||||
|
||||
if (!response.ok) throw data;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
const getToken = () => {
|
||||
return localStorage.getItem("sessionToken");
|
||||
}
|
||||
|
||||
export const sessionRequest = (url, method, token, body) => {
|
||||
return request(url, method, body, {"Authorization": `Bearer ${token}`});
|
||||
}
|
||||
|
||||
export const getRequest = (url) => {
|
||||
return sessionRequest(url, "GET", getToken());
|
||||
}
|
||||
|
||||
export const postRequest = (url, body) => {
|
||||
return sessionRequest(url, "POST", getToken(), body);
|
||||
}
|
||||
|
||||
export const putRequest = (url, body) => {
|
||||
return sessionRequest(url, "PUT", getToken(), body);
|
||||
}
|
||||
|
||||
export const deleteRequest = (url) => {
|
||||
return sessionRequest(url, "DELETE", getToken());
|
||||
}
|
||||
|
||||
export const patchRequest = (url, body) => {
|
||||
return sessionRequest(url, "PATCH", getToken(), body);
|
||||
}
|
Reference in New Issue
Block a user