2** EPITECH PROJECT, 2024
8export namespace Query {
9 export const url: string = "https://dashboard-back.pingpal.news";
10 export const port: number = -1;
13 export async function query(
14 method: string = "GET",
16 body: Record<string, unknown> = {},
18 base_url: string = "",
19 headers: Record<string, string> = {},
23 headers["Authorization"] = `Bearer ${token}`;
26 const payload: RequestInit = {
32 if (method !== "GET" && Object.keys(body).length > 0) {
33 payload.body = JSON.stringify(body);
36 const finalBase: string = base_url === "" ? url : base_url;
37 const finalUrl: string = port === -1 ? `${finalBase}${path}` : `${finalBase}:${port}${path}`;
39 // console.log("Final URL:", finalUrl);
40 // console.log("Payload:", payload);
42 const response: Response = await fetch(finalUrl, payload);
44 // console.log("Response:", response);
47 throw new Error(`Error: ${response.status}`);
50 const data = await response.json();
53 console.error("Error fetching data:", error);
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);
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);
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);
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);
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);