import {json,validClientId,getPushRecord,putPushRecord} from "../_lib/shared.js"; export async function onRequest({request:req,env}){ if(req.method!=="POST")return json({error:"Method not allowed"},405); try{ const {clientId,subscription,settings}=await req.json(); if(!validClientId(clientId)||!subscription?.endpoint)return json({error:"Invalid payload"},400); const old=await getPushRecord(env,clientId); const record={ clientId,subscription, settings:{ notifications:!!settings?.notifications, startTime:/^\d{2}:\d{2}$/.test(settings?.startTime||"")?settings.startTime:"07:00", frequency:[30,60,120,180].includes(+settings?.frequency)?+settings.frequency:60, timezone:typeof settings?.timezone==="string"?settings.timezone:"Europe/Paris" }, completedDate:old?.completedDate||null, lastSentAt:old?.lastSentAt||null, lastPushError:null, updatedAt:new Date().toISOString() }; await putPushRecord(env,clientId,record); return json({ok:true}); }catch(e){console.error(e);return json({error:"Une erreur est survenue."},500)} }