From 07ff1b59fd6070d8fc2b73245cf2612fb799086a Mon Sep 17 00:00:00 2001 From: Mika Date: Fri, 9 Jan 2026 14:49:05 +0000 Subject: [PATCH] Add results_visualization/js/api.js --- results_visualization/js/api.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 results_visualization/js/api.js diff --git a/results_visualization/js/api.js b/results_visualization/js/api.js new file mode 100644 index 0000000..a7e8dcc --- /dev/null +++ b/results_visualization/js/api.js @@ -0,0 +1,30 @@ +export async function fetchSpikeData(filters = {}) { + const params = new URLSearchParams(); + if (filters.time_range) params.append('time_range', filters.time_range); + if (filters.event_type) params.append('event_type', filters.event_type); + if (filters.cpu_id !== undefined && filters.cpu_id !== null) params.append('cpu_id', filters.cpu_id); + + const url = `/api/spike_data${params.toString() ? '?' + params.toString() : ''}`; + + try { + const response = await fetch(url, { method: 'GET' }); + if (!response.ok) { + console.error('Fehlerhafte Serverantwort:', response.status, response.statusText); + return []; + } + const data = await response.json(); + if (!Array.isArray(data)) { + console.error('Unerwartetes Datenformat von /api/spike_data'); + return []; + } + return data.map(item => ({ + timestamp: Number(item.timestamp) || 0, + type: typeof item.type === 'string' ? item.type : '', + cpu: Number(item.cpu) || 0, + value: Number(item.value) || 0 + })); + } catch (err) { + console.error('Fehler beim Abrufen der Spike-Daten:', err); + return []; + } +}