/** * ticketmaster.js – Schnittstelle zum Backend-Proxy für die Ticketmaster Discovery API. * Der direkte API-Aufruf läuft über den eigenen Backend-Server, um den API-Key * nicht im Frontend zu exponieren (OWASP: Sensitive Data Exposure vermeiden). */ /** * Lädt Events für eine Stadt über den Backend-Proxy. * @param {string} city - Stadtname für die Suche * @returns {Promise} Array von rohen Ticketmaster-Event-Objekten */ export async function fetchEvents(city) { const url = `http://localhost:3000/api/events?city=${encodeURIComponent(city)}`; try { const response = await fetch(url); if (!response.ok) { throw new Error(`Backend antwortete mit Status ${response.status}`); } const data = await response.json(); // Ticketmaster gibt Events unter _embedded.events zurück; leeres Array als Fallback return data._embedded?.events || []; } catch (error) { // Fehler nach oben weitergeben, damit app.js ihn dem Nutzer anzeigen kann throw error; } }