bonus and timing logic a little bit better

This commit is contained in:
2026-01-28 19:22:51 -06:00
parent 778a41d1b1
commit 43317bde85
5 changed files with 321 additions and 192 deletions

View File

@@ -1,9 +1,10 @@
import { NextResponse } from 'next/server';
import { getRoom, buzz, startGame, loadQuestion, startTossupTimer, startBonusTimer, markTossupCorrect, markTossupWrong, markBonusCorrect, markBonusWrong, endGame } from '@/lib/rooms';
import { getRandomQuestion } from '@/lib/scibowl-api';
import { z, ZodError } from 'zod';
import { getRoom, buzz, startGame, loadQuestion, startTossupTimer, startBonusTimer, markTossupCorrect, markTossupWrong, markBonusCorrect, markBonusWrong, moveOn, endGame } from '@/lib/rooms';
const gameActionSchema = z.object({
action: z.enum(['start', 'load_question', 'start_timer', 'buzz', 'tossup_correct', 'tossup_wrong', 'bonus_start_timer', 'bonus_correct', 'bonus_wrong', 'end']),
action: z.enum(['start', 'load_question', 'start_timer', 'buzz', 'tossup_correct', 'tossup_wrong', 'bonus_start_timer', 'bonus_correct', 'bonus_wrong', 'move_on', 'end']),
moderatorId: z.string().optional(),
playerId: z.string().optional(),
});
@@ -66,6 +67,11 @@ export async function POST(
success = markBonusWrong(code, moderatorId);
break;
case 'move_on':
if (!moderatorId) return NextResponse.json({ error: 'Missing moderatorId' }, { status: 400 });
success = moveOn(code, moderatorId);
break;
case 'end':
if (!moderatorId) return NextResponse.json({ error: 'Missing moderatorId' }, { status: 400 });
success = endGame(code, moderatorId);