Dashboard  2
Lot's of data
Loading...
Searching...
No Matches
querier.ts
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2024
3** area-rattrapage
4** File description:
5** querier.ts
6*/
7
8export namespace Query {
9 export const url: string = "https://dashboard-back.pingpal.news";
10 export const port: number = -1;
11
12
13 export async function query(
14 method: string = "GET",
15 path: string = "/",
16 body: Record<string, unknown> = {},
17 token: string = "",
18 base_url: string = "",
19 headers: Record<string, string> = {},
20 ): Promise<any> {
21 try {
22 if (token) {
23 headers["Authorization"] = `Bearer ${token}`;
24 }
25
26 const payload: RequestInit = {
27 method,
28 mode: "cors",
29 headers,
30 };
31
32 if (method !== "GET" && Object.keys(body).length > 0) {
33 payload.body = JSON.stringify(body);
34 }
35
36 const finalBase: string = base_url === "" ? url : base_url;
37 const finalUrl: string = port === -1 ? `${finalBase}${path}` : `${finalBase}:${port}${path}`;
38
39 // console.log("Final URL:", finalUrl);
40 // console.log("Payload:", payload);
41
42 const response: Response = await fetch(finalUrl, payload);
43
44 // console.log("Response:", response);
45
46 if (!response.ok) {
47 throw new Error(`Error: ${response.status}`);
48 }
49
50 const data = await response.json();
51 return data;
52 } catch (error) {
53 console.error("Error fetching data:", error);
54 return error;
55 }
56 }
57
58 export async function get(path: string = "/", body: Record<string, unknown> = {}, token: string = "", base_url: string = "", headers: Record<string, string> = {}) {
59 return await query("GET", path, body, token, base_url, headers);
60 }
61
62 export async function put(path: string = "/", body: Record<string, unknown> = {}, token: string = "", base_url: string = "", headers: Record<string, string> = {}) {
63 return await query("PUT", path, body, token, base_url, headers);
64 }
65
66 export async function post(path: string = "/", body: Record<string, unknown> = {}, token: string = "", base_url: string = "", headers: Record<string, string> = {}) {
67 return await query("POST", path, body, token, base_url, headers);
68 }
69
70 export async function patch(path: string = "/", body: Record<string, unknown> = {}, token: string = "", base_url: string = "", headers: Record<string, string> = {}) {
71 return await query("PATCH", path, body, token, base_url, headers);
72 }
73
74 export async function deleteQuery(path: string = "/", body: Record<string, unknown> = {}, token: string = "", base_url: string = "", headers: Record<string, string> = {}) {
75 return await query("DELETE", path, body, token, base_url, headers);
76 }
77};