From 011c95696dbc0979bb94a40801215b4c4d61c520 Mon Sep 17 00:00:00 2001 From: Mika Date: Mon, 26 Jan 2026 12:23:43 +0000 Subject: [PATCH] Add result_visualization/js/api.js --- result_visualization/js/api.js | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 result_visualization/js/api.js diff --git a/result_visualization/js/api.js b/result_visualization/js/api.js new file mode 100644 index 0000000..c215d8e --- /dev/null +++ b/result_visualization/js/api.js @@ -0,0 +1,43 @@ +/** + * @module api + * @description Stellt Funktionen zum Abrufen der Analyseergebnisse über die /results API bereit. + */ + +/** + * Sendet eine GET-Anfrage an die /results API, um Analyseergebnisse zu laden. + * + * @async + * @function fetchResults + * @param {Object} [filters={}] - Optionale Filterparameter (z. B. { run_type: 'pinned', metric: 'correlation' }) + * @returns {Promise} Promise, das ein Array von Runs mit Feldern {id, type, parameters, statistics, chartData} zurückgibt. + * @throws {Error} Wenn die Anfrage fehlschlägt oder ungültige JSON-Daten zurückgibt. + */ +export async function fetchResults(filters = {}) { + try { + const query = new URLSearchParams(); + if (filters.run_type) query.append('run_type', filters.run_type); + if (filters.metric) query.append('metric', filters.metric); + + const response = await fetch(`/results${query.toString() ? `?${query.toString()}` : ''}`, { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }); + + if (!response.ok) { + throw new Error(`Fehler beim Abrufen der Ergebnisse: ${response.status}`); + } + + const data = await response.json(); + + if (!Array.isArray(data)) { + throw new Error('Unerwartetes Datenformat: Erwartet wurde ein Array.'); + } + + return data; + } catch (error) { + console.error('API-Fehler in fetchResults:', error); + throw error; + } +}