moved utility function to databaseManager

This commit is contained in:
2026-05-25 21:57:25 +01:00
parent 788db89ea0
commit cff479c68d

View File

@@ -1,55 +1,21 @@
import { import {
globalEmitter, globalEmitter,
getRegisteredEvents, getRegisteredEvents,
getAllRegisteredEventPlayers, getRegisteredEventsWithPlayers
getAllBrackets } from '$lib/server/databaseManager';
} from '$lib/server/eventManager';
import { generateEndpoint } from '$lib/server/endpoint'; import { generateEndpoint } from '$lib/server/endpoint';
export async function GET() { export async function GET() {
// Generate stream endpoint // Generate stream endpoint
const endpoint = generateEndpoint(async (enqueue) => { const endpoint = generateEndpoint(async (enqueue) => {
const eventList = async () => { // Get the all the events with the players seperated into brackets
// Get updated events from database let eventList = async () => {
let newEvents = await getRegisteredEvents(); let newEventList = await getRegisteredEventsWithPlayers();
let registeredEventList = newEvents['events']; enqueue(newEventList);
// 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);
}; };
// 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(); eventList();
globalEmitter.on('eventUpdate', eventList); globalEmitter.on('eventUpdate', eventList);
@@ -60,3 +26,12 @@ export async function GET() {
}); });
return (await endpoint).response; 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));
}