moved utility function to databaseManager
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user