Created the RequestUtil.js
This commit is contained in:
63
webui/src/common/utils/RequestUtil.js
Normal file
63
webui/src/common/utils/RequestUtil.js
Normal file
@ -0,0 +1,63 @@
|
||||
export const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
export const SERVER_URL = isDev ? "http://localhost:7865" : "";
|
||||
export const PROXY_URL = isDev ? "http://localhost:7865/proxy" : "/proxy";
|
||||
|
||||
// Get the default headers of the request
|
||||
const getHeaders = () => {
|
||||
return localStorage.getItem("token") ? {Authorization: "Basic " + localStorage.getItem("token")} : {};
|
||||
}
|
||||
|
||||
export const proxyRequest = async (path, method = "GET", body = {}, headers = {}) => {
|
||||
return await fetch(PROXY_URL + "/" + path, {
|
||||
headers: {...getHeaders(), ...headers}, method,
|
||||
body: method !== "GET" ? new URLSearchParams(body) : undefined
|
||||
});
|
||||
}
|
||||
|
||||
// Run a plain request with all default values
|
||||
export const request = async (path, method = "GET", body = {}, headers = {}, abort = true) => {
|
||||
const controller = new AbortController();
|
||||
if (abort) setTimeout(() => {controller.abort()}, 10000);
|
||||
|
||||
|
||||
return await fetch("/api/" + path, {
|
||||
headers: {...getHeaders(), ...headers}, method,
|
||||
body: method !== "GET" ? new URLSearchParams(body) : undefined,
|
||||
signal: controller.signal
|
||||
});
|
||||
}
|
||||
|
||||
// Run a GET request and get the json of the response
|
||||
export const jsonRequest = async (path, headers = {}) => {
|
||||
return (await request(path, "GET", null, headers)).json();
|
||||
}
|
||||
|
||||
export const jsonProxyRequest = async (path, headers = {}) => {
|
||||
return (await proxyRequest(path, "GET", null, headers)).json();
|
||||
}
|
||||
|
||||
// Dispatches the provided command
|
||||
export const dispatchCommand = (command) => {
|
||||
return postRequest("console", {command});
|
||||
}
|
||||
|
||||
// Run a POST request and post some values
|
||||
export const postRequest = async (path, body = {}, headers = {}) => {
|
||||
return await request(path, "POST", body, headers);
|
||||
}
|
||||
|
||||
// Run a PUT request update a resource
|
||||
export const putRequest = async (path, body = {}, headers = {}) => {
|
||||
return await request(path, "PUT", body, headers);
|
||||
}
|
||||
|
||||
// Run a PATCH request update a resource
|
||||
export const patchRequest = async (path, body = {}, headers = {}) => {
|
||||
return await request(path, "PATCH", body, headers);
|
||||
}
|
||||
|
||||
// Run a DELETE request and delete a resource
|
||||
export const deleteRequest = async (path, body = {}, headers = {}) => {
|
||||
return await request(path, "DELETE", body, headers);
|
||||
}
|
Reference in New Issue
Block a user