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