diff --git a/src/routes/api/telemetry/+server.ts b/src/routes/api/telemetry/+server.ts index 75434fa..1223c7a 100644 --- a/src/routes/api/telemetry/+server.ts +++ b/src/routes/api/telemetry/+server.ts @@ -4,7 +4,9 @@ import { saveTelemetry } from '$lib/server/fleet/telemetry.js'; import { emit } from '$lib/server/pipeline/bus.js'; export async function POST({ request }: { request: Request }) { + console.log('[telemetry] received POST /api/telemetry'); if (request.headers.get('content-type')?.split(';')[0].trim().toLowerCase() !== 'application/json') { + console.log('[telemetry] rejected 415: Content-Type must be application/json'); return json({ ok: false, error: 'Content-Type must be application/json' }, { status: 415 }); } const body = await request.json().catch(() => null); @@ -13,10 +15,12 @@ export async function POST({ request }: { request: Request }) { || typeof body.server !== 'string' || !body.server.length || body.server.length > 255 || !Number.isSafeInteger(body.round) || body.round < 0 || !Number.isSafeInteger(body.players) || body.players < 0) { + console.log('[telemetry] rejected 400: invalid round_change payload or malformed JSON'); return json({ ok: false, error: 'Expected round_change, a server name, and nonnegative integer round and players' }, { status: 400 }); } const server = getServer(body.server); if (!server || server.destroyed_at) { + console.log(`[telemetry] rejected 404: unknown or destroyed server ${JSON.stringify(body.server)}`); return json({ ok: false, error: 'Unknown or destroyed server' }, { status: 404 }); } const telemetry = { @@ -24,6 +28,7 @@ export async function POST({ request }: { request: Request }) { players: body.players as number, receivedAt: new Date().toISOString() }; saveTelemetry(telemetry); + console.log(`[telemetry] accepted round_change ${JSON.stringify(telemetry)}`); emit({ type: 'server-telemetry', entries: [telemetry] }); return json({ ok: true, telemetry }); }