aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/backend.js')
-rw-r--r--frontend/src/backend.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/frontend/src/backend.js b/frontend/src/backend.js
new file mode 100644
index 0000000..72ee9dd
--- /dev/null
+++ b/frontend/src/backend.js
@@ -0,0 +1,42 @@
+
+async function json(method, url, data, json, headers) {
+ const options = {
+ method: method,
+ body: json != null ? JSON.stringify(json) : data,
+ mode: "cors",
+ cache: "no-cache",
+ credentials: "same-origin",
+ headers: headers || {
+ "Content-Type": "application/json"
+ },
+ redirect: "follow",
+ referrerPolicy: "no-referrer",
+ };
+ const response = await fetch(url, options);
+ const result = {
+ statusCode: response.status,
+ status: `${response.status} ${response.statusText}`,
+ json: await response.json()
+ };
+
+ if (response.status >= 200 && response.status < 300) {
+ return result;
+ } else {
+ return Promise.reject(result);
+ }
+}
+
+const backend = {
+ get: (url = "", headers = null) =>
+ json("GET", url, null,null, headers),
+ post: (url = "", data = null, headers = null) =>
+ json("POST", url, null, data, headers),
+ put: (url = "", data = null, headers = null) =>
+ json("PUT", url, null, data, headers),
+ delete: (url = "", data = null, headers = null) =>
+ json("DELETE", url, null, data, headers),
+ postFile: (url = "", data = null, headers = {}) =>
+ json("POST", url, data, null, headers)
+};
+
+export default backend;