recipe-app/frontend/src/api/utils/requests.ts
2025-10-05 14:54:45 +02:00

42 lines
1.4 KiB
TypeScript

import { setAuthHeader, setContentTypeHeaderJson } from "./headers";
export async function get(url: string) : Promise<Response>{
const requestHeaders = new Headers();
setAuthHeader(requestHeaders);
console.log("GET to " + url);
const response = await fetch(url, {
method: "GET",
headers: requestHeaders
})
if(!response.ok){
throw new Error("GET to " + url + "failed!")
}
return response;
}
export async function postJson(url: string, requestBody: string, logBody = true) : Promise<Response>{
console.log("POST to " + url + (logBody) ? "with body " + requestBody : "");
return persistJson(url, requestBody, "POST");
}
export async function putJson(url: string, requestBody: string, logBody = true) : Promise<Response>{
console.log("PUT to " + url + (logBody) ? "with body " + requestBody : "");
return persistJson(url, requestBody, "PUT");
}
async function persistJson(url: string, requestBody: string, requestMethod: string) : Promise<Response>{
const requestHeaders = new Headers();
setContentTypeHeaderJson(requestHeaders);
setAuthHeader(requestHeaders);
const response = await fetch(url, {
method: requestMethod,
headers: requestHeaders,
body: requestBody,
});
if(!response.ok){
throw new Error(requestMethod + " to " + url + "failed!")
}
return response;
}