From 29c2332a087eae3be959625adb145f065b04a2d2 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 20 Jul 2024 13:00:26 +0200 Subject: [PATCH] Create RequestUtil.js --- dashboard/src/common/utils/RequestUtil.js | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 dashboard/src/common/utils/RequestUtil.js diff --git a/dashboard/src/common/utils/RequestUtil.js b/dashboard/src/common/utils/RequestUtil.js new file mode 100644 index 0000000..ba365a7 --- /dev/null +++ b/dashboard/src/common/utils/RequestUtil.js @@ -0,0 +1,44 @@ +const API_VERSION = "v1"; + +export const request = async (url, method, body, headers) => { + const response = await fetch(`/api/${API_VERSION}${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; +} + +export const sessionRequest = (url, method, token, body) => { + return request(url, method, body, {"Authorization": `Bearer ${token}`}); +} + +export const getRequest = (url) => { + return sessionRequest(url, "GET", localStorage.getItem("sessionToken")); +} + +export const postRequest = (url, body) => { + return sessionRequest(url, "POST", localStorage.getItem("sessionToken"), body); +} + +export const putRequest = (url, body) => { + return sessionRequest(url, "PUT", localStorage.getItem("sessionToken"), body); +} + +export const deleteRequest = (url) => { + return sessionRequest(url, "DELETE", localStorage.getItem("sessionToken")); +} + +export const patchRequest = (url, body) => { + return sessionRequest(url, "PATCH", localStorage.getItem("sessionToken"), body); +} \ No newline at end of file