Files
Flight-Ops/app/api/state/route.ts
T
2026-09-26 14:40:56 +00:00

20 lines
810 B
TypeScript

import { requireAuth } from '@/lib/auth';
import { tickNow } from '@/lib/sim/engine';
import { getStateSnapshot } from '@/lib/game/state';
// v1.1.0 (ISS-107): guarded — 401 without a live X-Flight-Session. The snapshot shape is
// unchanged; per-player snapshots are a later step.
export async function GET(req: Request) {
const auth = await requireAuth(req);
if (!auth.ok) return auth.response;
try {
// Tick-on-read (v0.7.0): advance the sim clock before snapshotting so every
// read reflects current game time (expiry/finalize/spawn run inside the tick).
await tickNow();
return Response.json(await getStateSnapshot());
} catch (err) {
console.error('failed to load game state', err);
return Response.json({ error: 'failed to load game state' }, { status: 500 });
}
}