Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add partial real-time points calculation
  • Loading branch information
regalijan committed Mar 5, 2024
1 parent 80d90e8 commit c4b22b6
Showing 1 changed file with 28 additions and 1 deletion.
29 changes: 28 additions & 1 deletion app/routes/et-members.tsx
Expand Up @@ -55,7 +55,34 @@ export async function loader({ context }: { context: RequestContext }) {
status: 500,
});

return { can_manage: true, members: etData.results } as {
const now = new Date();
const members = etData.results as { [k: string]: any }[];
const currentMonthEvents = await context.env.D1.prepare(
"SELECT answered_at, created_by, performed_at, reached_minimum_player_count, type FROM events WHERE year = ? AND month = ?;",
)
.bind(now.getUTCFullYear(), now.getUTCMonth() + 1)
.all();

if (!currentMonthEvents.error) {
for (const event of currentMonthEvents.results as { [k: string]: any }[]) {
const memberIdx = members.findIndex((m) => m.id === event.created_by);

if (memberIdx === -1) continue;

if (event.performed_at) members[memberIdx].points += 10;
if (event.type === "gamenight" && event.reached_minimum_player_count)
members[memberIdx].points += 10;
if (
event.type === "rotw" &&
event.answered_at - event.performed_at >= 86400000
)
members[memberIdx].points += 10;
if (!event.performed_at && event.day < now.getUTCDate())
members[memberIdx].points -= 5;
}
}

return { can_manage: true, members } as {
can_manage: boolean;
members: { [k: string]: any }[];
};
Expand Down

0 comments on commit c4b22b6

Please sign in to comment.