diff --git a/src/routes/api/registeredEvents/+server.ts b/src/routes/api/registeredEvents/+server.ts index de4139b..7b9e510 100644 --- a/src/routes/api/registeredEvents/+server.ts +++ b/src/routes/api/registeredEvents/+server.ts @@ -1,55 +1,21 @@ import { globalEmitter, getRegisteredEvents, - getAllRegisteredEventPlayers, - getAllBrackets -} from '$lib/server/eventManager'; + getRegisteredEventsWithPlayers +} from '$lib/server/databaseManager'; import { generateEndpoint } from '$lib/server/endpoint'; export async function GET() { // Generate stream endpoint const endpoint = generateEndpoint(async (enqueue) => { - const eventList = async () => { - // Get updated events from database - let newEvents = await getRegisteredEvents(); - let registeredEventList = newEvents['events']; - - // Get all possible brackets from the database - let brackets = await getAllBrackets(); - - // Initilise the final eventList - let fullEventList: any[] = []; - - // For every event - for (let registeredEvent in registeredEventList) { - let event = registeredEventList[registeredEvent]; - - // Get all players for the event - let registeredPlayers = await getAllRegisteredEventPlayers(event.id); - - // Map the players into an [] with structure {id: number, name: string, items: any[]} - // So that the players are sorted by bracket for the frontend - const bracketOrder = brackets.brackets.map((category) => { - return { - ...category, - // Filter the items that match the current bracket name - items: registeredPlayers.eventPlayers.filter((item) => item.bracket === category.name) - }; - }); - - // append the player info to the event object - let eventWithPlayers = { - ...event, - registeredPlayers: bracketOrder - }; - // combine all of the events into one array - fullEventList.push(eventWithPlayers); - } - // Send to client - enqueue(fullEventList); + // Get the all the events with the players seperated into brackets + let eventList = async () => { + let newEventList = await getRegisteredEventsWithPlayers(); + enqueue(newEventList); }; - // Initial Sync + // Send the eventList to the client when a connection is made + // TODO make it so that this only happens on an initial post request eventList(); globalEmitter.on('eventUpdate', eventList); @@ -60,3 +26,12 @@ export async function GET() { }); return (await endpoint).response; } + +export async function POST({ request }: any) { + let responseBody = await request.json(); + let eventRequested = responseBody.eventId; + + let eventList = await getRegisteredEventsWithPlayers(eventRequested); + + return new Response(JSON.stringify(eventList)); +}