Files
Backend/WEBROOT/js/AjaxMethods.js
T
2026-07-19 09:36:02 +02:00

73 lines
1.6 KiB
JavaScript

const AJAX_HANDLER_URL = '/api/js/AjaxHandler';
function escapeHtml(str) {
const div = document.createElement('div');
div.textContent = str ?? '';
return div.innerHTML;
}
async function parseJsonResponse(response) {
const rawText = await response.text();
try {
return JSON.parse(rawText);
} catch (e) {
console.error('Antwort war kein gültiges JSON:', rawText);
throw new Error('Server hat kein gültiges JSON zurückgegeben (siehe Konsole)');
}
}
async function ajaxRequest(payload) {
try {
const response = await fetch(AJAX_HANDLER_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
const data = await parseJsonResponse(response);
if (data.error) {
throw new Error(data.error);
}
return data;
} catch (error) {
console.error('Ajax-Fehler:', error.message);
throw error;
}
}
function DatabaseInsert(table, columns, values) {
return ajaxRequest({
action: 'insert',
table,
columns,
values
});
}
function DatabaseShow(table, columns = [], conditions = []) {
return ajaxRequest({
action: 'show',
table,
columns,
conditions
});
}
function DatabaseUpdate(table, updates, conditions) {
return ajaxRequest({
action: 'update',
table,
updates,
conditions
});
}
function DatabaseDelete(table, conditions) {
return ajaxRequest({
action: 'delete',
table,
conditions
});
}