added the winner to events from database, and then made that available through dbm
This commit is contained in:
@@ -11,8 +11,11 @@ export async function getAllInitialInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get teams object from database
|
// Get teams object from database
|
||||||
export async function getTeams() {
|
export async function getTeams(teamId?: number) {
|
||||||
const allTeams = await db.select().from(schema.teamScoresView);
|
const allTeams = await db
|
||||||
|
.select()
|
||||||
|
.from(schema.teamScoresView)
|
||||||
|
.where(teamId ? eq(schema.teamScoresView.teamId, teamId) : undefined);
|
||||||
for (let team in allTeams) {
|
for (let team in allTeams) {
|
||||||
let currentTeam = allTeams[team];
|
let currentTeam = allTeams[team];
|
||||||
if (!currentTeam.totalPoints) {
|
if (!currentTeam.totalPoints) {
|
||||||
@@ -30,21 +33,29 @@ export async function getTeams() {
|
|||||||
|
|
||||||
// Get all registered events from database
|
// Get all registered events from database
|
||||||
export async function getRegisteredEvents(eventId?: number) {
|
export async function getRegisteredEvents(eventId?: number) {
|
||||||
|
async function getWinnerInfo(teamId: number) {
|
||||||
|
const teamInfo = await getTeams(teamId);
|
||||||
|
return teamInfo.teams[0];
|
||||||
|
}
|
||||||
|
|
||||||
const allEvents = await db
|
const allEvents = await db
|
||||||
.select()
|
.select()
|
||||||
.from(schema.registeredEventsView)
|
.from(schema.registeredEventsView)
|
||||||
// If event id specified, get that event, otherwise get all events
|
|
||||||
.where(eventId ? eq(schema.registeredEventsView.eventId, eventId) : undefined);
|
.where(eventId ? eq(schema.registeredEventsView.eventId, eventId) : undefined);
|
||||||
return {
|
|
||||||
events: allEvents.map((events) => ({
|
const events = await Promise.all(
|
||||||
|
allEvents.map(async (events) => ({
|
||||||
id: events.eventId,
|
id: events.eventId,
|
||||||
name: events.eventName,
|
name: events.eventName,
|
||||||
division: events.division,
|
division: events.division,
|
||||||
state: events.state,
|
state: events.state,
|
||||||
completed: events.timeCompleted || 0,
|
completed: events.timeCompleted || 0,
|
||||||
resultPreset: events.resultPreset
|
resultPreset: events.resultPreset,
|
||||||
|
winner: events.winner ? await getWinnerInfo(events.winner) : 'UNDECIDED'
|
||||||
}))
|
}))
|
||||||
};
|
);
|
||||||
|
|
||||||
|
return { events };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all players with an event id specified
|
// Get all players with an event id specified
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ export const registeredEvents = sqliteTable('registeredEvents', {
|
|||||||
.references(() => divisions.id)
|
.references(() => divisions.id)
|
||||||
.notNull(),
|
.notNull(),
|
||||||
state: integer('event_state').notNull().default(0),
|
state: integer('event_state').notNull().default(0),
|
||||||
timeCompleted: integer('time_completed')
|
timeCompleted: integer('time_completed'),
|
||||||
|
teamWinner: integer('event_team_winner').references(() => teams.id)
|
||||||
});
|
});
|
||||||
|
|
||||||
export const registeredPlayers = sqliteTable('registeredPlayers', {
|
export const registeredPlayers = sqliteTable('registeredPlayers', {
|
||||||
@@ -131,11 +132,12 @@ export const registeredEventsView = sqliteView('registeredEventsView').as((qb) =
|
|||||||
division: divisions.name,
|
division: divisions.name,
|
||||||
state: registeredEvents.state,
|
state: registeredEvents.state,
|
||||||
timeCompleted: registeredEvents.timeCompleted,
|
timeCompleted: registeredEvents.timeCompleted,
|
||||||
|
winner: registeredEvents.teamWinner,
|
||||||
resultPreset: eventTypes.resultPreset
|
resultPreset: eventTypes.resultPreset
|
||||||
})
|
})
|
||||||
.from(registeredEvents)
|
.from(registeredEvents)
|
||||||
.innerJoin(eventTypes, eq(registeredEvents.eventType, eventTypes.id))
|
.innerJoin(eventTypes, eq(registeredEvents.eventType, eventTypes.id))
|
||||||
.innerJoin(divisions, eq(registeredEvents.division, divisions.id))
|
.innerJoin(divisions, eq(registeredEvents.division, divisions.id));
|
||||||
});
|
});
|
||||||
|
|
||||||
export const registeredEventPlayersView = sqliteView('registeredEventPlayersView').as((qb) => {
|
export const registeredEventPlayersView = sqliteView('registeredEventPlayersView').as((qb) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user