From d44c0e0da0e8cb9dda826c21204ab48078d2d406 Mon Sep 17 00:00:00 2001 From: Mika Date: Wed, 11 Mar 2026 12:43:09 +0000 Subject: [PATCH] Add max_outlier_visualization/js/api.js --- max_outlier_visualization/js/api.js | 47 +++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 max_outlier_visualization/js/api.js diff --git a/max_outlier_visualization/js/api.js b/max_outlier_visualization/js/api.js new file mode 100644 index 0000000..4edda0f --- /dev/null +++ b/max_outlier_visualization/js/api.js @@ -0,0 +1,47 @@ +/** + * @module api + * @description Kommunikations-Layer für die /max-outlier-results API. + * Bietet Funktionen für das Abrufen von Analyseergebnissen. + */ + +/** + * Führt einen GET-Request an /max-outlier-results aus und gibt das JSON-Ergebnis zurück. + * + * @async + * @function fetchMaxOutlierResults + * @param {string} [baseUrl='/max-outlier-results'] - Basis-URL der API. + * @param {Object} [filters={}] - Optionale Filterparameter (run_id, parallelism, stratum). + * @returns {Promise>} + */ +export async function fetchMaxOutlierResults(baseUrl = '/max-outlier-results', filters = {}) { + try { + const params = new URLSearchParams(); + Object.entries(filters).forEach(([key, value]) => { + if (value !== undefined && value !== null && value !== '') { + params.append(key, value); + } + }); + + const url = params.toString() ? `${baseUrl}?${params.toString()}` : baseUrl; + + const response = await fetch(url, { + method: 'GET', + headers: { 'Accept': 'application/json' } + }); + + if (!response.ok) { + throw new Error(`API request failed with status ${response.status}`); + } + + const data = await response.json(); + if (!Array.isArray(data)) { + console.warn('Unexpected API response format, expected an array.'); + return []; + } + + return data; + } catch (error) { + console.error('Error fetching Max-Outlier results:', error); + return []; + } +}