Nandrx fdffc08417 Improve code quality, security, and accessibility
- Fix login check: use HTTP 200 instead of 201 for GET /api/user
- Add encodeURIComponent for city in Ticketmaster URL
- Re-throw errors in ticketmaster.js so app.js can show user feedback
- Add JSDoc comments to all service and utility modules
- Add German labels and text throughout (de-CH locale)
2026-05-31 17:48:39 +02:00

33 lines
1.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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) {
console.error("Fehler beim Laden der Events:", error);
// Fehler nach oben weitergeben, damit app.js ihn dem Nutzer anzeigen kann
throw error;
}
}