diff --git a/experiment_results_visualization/js/api.js b/experiment_results_visualization/js/api.js new file mode 100644 index 0000000..2e1ab4b --- /dev/null +++ b/experiment_results_visualization/js/api.js @@ -0,0 +1,36 @@ +/** + * @module api + * @description Kommunikation mit der /results-API und Formatierung der JSON-Daten für die UI. + * Diese Datei stellt zentrale Datenabruf-Funktionen für das Dashboard bereit. + */ + +/** + * Sendet GET-Request an /results und gibt strukturierte experiment_data zurück. + * @async + * @returns {Promise<{ pinned: Array, unpinned: Array }>} Experimentdaten. + */ +export async function fetchResults() { + try { + const response = await fetch('/results', { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }); + + if (!response.ok) { + throw new Error(`Fehler beim Abrufen der Ergebnisse: ${response.status}`); + } + + const data = await response.json(); + + // Grundlegende Strukturvalidierung + const pinned = Array.isArray(data.pinned) ? data.pinned : []; + const unpinned = Array.isArray(data.unpinned) ? data.unpinned : []; + + return { pinned, unpinned }; + } catch (error) { + console.error('API-Fehler in fetchResults:', error); + return { pinned: [], unpinned: [] }; // Leere Struktur als Fallback + } +}