/* ============================================================ Delt turnusdata (synk mellom alle maskiner). Kjører som en Cloudflare Pages Function på /api/state. - GET /api/state -> henter lagret turnus (JSON), eller "null" - PUT /api/state -> lagrer turnus (JSON) Krever at en KV-database er koblet til prosjektet med variabelnavnet TURNUS_KV (gjøres i Cloudflare-dashbordet). ============================================================ */ const NOEKKEL = 'turnus-state'; export async function onRequest(context) { const { request, env } = context; const kv = env.TURNUS_KV; if (!kv) { return new Response(JSON.stringify({ feil: 'Databasen (TURNUS_KV) er ikke koblet til ennå.' }), { status: 500, headers: { 'content-type': 'application/json' }, }); } if (request.method === 'GET') { const data = await kv.get(NOEKKEL); return new Response(data || 'null', { headers: { 'content-type': 'application/json', 'cache-control': 'no-store' }, }); } if (request.method === 'PUT') { const body = await request.text(); try { JSON.parse(body); } catch (e) { return new Response('Ugyldig JSON', { status: 400 }); } if (body.length > 2000000) { return new Response('For stor', { status: 413 }); } await kv.put(NOEKKEL, body); return new Response('OK'); } return new Response('Method not allowed', { status: 405, headers: { 'Allow': 'GET, PUT' }, }); }