32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
/**
|
||
* 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>} 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;
|
||
}
|
||
}
|