29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
/**
|
||
* eventService.js – Transformiert rohe Ticketmaster-API-Daten in ein vereinfachtes Event-Objekt.
|
||
* Kapselt die Datenstruktur der externen API, sodass der Rest der App davon unabhängig bleibt.
|
||
*/
|
||
|
||
import { fetchEvents } from "../api/ticketmaster.js";
|
||
|
||
/**
|
||
* Lädt und transformiert Events für eine gegebene Stadt.
|
||
* @param {string} city - Stadtname
|
||
* @returns {Promise<Array<{id, name, date, time, venue, category, url}>>}
|
||
*/
|
||
export async function getEvents(city) {
|
||
const events = await fetchEvents(city);
|
||
|
||
// Rohe API-Daten auf ein einheitliches, einfaches Format abbilden
|
||
return events.map(event => ({
|
||
id: event.id,
|
||
name: event.name,
|
||
date: event.dates?.start?.localDate || null,
|
||
time: event.dates?.start?.localTime || null,
|
||
venue: event._embedded?.venues?.[0]?.name || "Unbekannter Ort",
|
||
url: event.url || null,
|
||
// Kategorie aus dem ersten Klassifizierungs-Segment extrahieren (z.B. "Music", "Sports")
|
||
category: event.classifications?.[0]?.segment?.name
|
||
? event.classifications[0].segment.name.toLowerCase()
|
||
: null
|
||
}));
|
||
} |