2024-06-01 19:00:50 +02:00

129 lines
3.8 KiB
JavaScript

// API URL
// const apiUrl = 'http://149.222.51.77/da4c59b9-43c4-4144-ae39-742c6ba3ad50/api/v1/';
const apiUrl = '/api/v1/';
//SSE URL
// export const sseUrl = 'http://149.222.51.77/da4c59b9-43c4-4144-ae39-742c6ba3ad50/live';
export const sseUrl = '/live';
export function fetchData(url) {
const uri = apiUrl + url;
return get(uri);
}
export function postData(url, data) {
const uri = apiUrl + url;
return post(uri, data);
}
export function putData(url, data) {
const uri = apiUrl + url;
return put(uri, data);
}
// Make a GET request
async function get(url) {
const controller = new AbortController();
const timeoutId = setTimeout(() => { alert("Verbindungsprobleme"); controller.abort(); }, 10000);
const response = await fetch(url, { signal: controller.signal });
if (response.ok) {
clearTimeout(timeoutId);
return response.json();
} else {
clearTimeout(timeoutId);
if (response.status === 400)
alert("Ungültige Anfrage");
else if (response.status === 404)
alert("Transaktion existiert nicht");
else (response.status === 500)
alert("Unerwarteter Fehler");
}
}
// Make a POST request
async function post(url, data) {
const controller = new AbortController();
const timeoutId = setTimeout(() => { alert("Verbindungsprobleme"); controller.abort(); }, 10000);
const response = await fetch(url, {
signal: controller.signal,
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
method: "POST",
body: JSON.stringify(data)
});
if (response.ok) {
clearTimeout(timeoutId);
alert("Gespeichert!");
return true;
} else {
clearTimeout(timeoutId);
if (response.status === 400)
alert("Ungültige Anfrage");
else if (response.status === 422)
alert("Nicht ausführbare Anfrage");
else (response.status === 500)
alert("Unerwarteter Fehler");
return false;
}
}
// Make a PUT request
async function put(url, data) {
const controller = new AbortController();
const timeoutId = setTimeout(() => { alert("Verbindungsprobleme"); controller.abort(); }, 10000);
const response = await fetch(url, {
signal: controller.signal,
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
method: "PUT",
body: JSON.stringify(data)
});
if (response.ok) {
clearTimeout(timeoutId);
alert("Gespeichert!");
return true;
} else {
clearTimeout(timeoutId);
if (response.status === 400)
alert("Ungültige Anfrage");
else if (response.status === 404)
alert("Konto existiert nicht");
else if (response.status === 422)
alert("Nicht ausführbare Anfrage");
else (response.status === 500)
alert("Unerwarteter Fehler");
return false;
}
}
// Make a DELETE request
export async function deleteData(url) {
const controller = new AbortController();
const timeoutId = setTimeout(() => { alert("Verbindungsprobleme"); controller.abort(); }, 10000);
const response = await fetch(apiUrl + url, {
signal: controller.signal,
method: "DELETE"
});
if (response.ok) {
clearTimeout(timeoutId);
alert("Gelöscht!");
return true;
} else {
clearTimeout(timeoutId);
if (response.status === 400)
alert("Ungültige Anfrage");
else if (response.status === 404)
alert("Konto existiert nicht");
else if (response.status === 422)
alert("Nicht ausführbare Anfrage");
else (response.status === 500)
alert("Unerwarteter Fehler");
return false;
}
}