diff --git a/functions/api/events-team/events/[id]/complete.ts b/functions/api/events-team/events/[id]/complete.ts index c2517a8..ce12d2c 100644 --- a/functions/api/events-team/events/[id]/complete.ts +++ b/functions/api/events-team/events/[id]/complete.ts @@ -5,6 +5,18 @@ export async function onRequestPost(context: RequestContext) { const { event } = context.data; try { + const completionTimeRow = await D1.prepare( + "SELECT performed_at FROM events WHERE id = ?;", + ) + .bind(event.id) + .first(); + + if (typeof completionTimeRow?.performed_at !== "number") + return jsonError( + "The event is already marked as complete or forgotten", + 400, + ); + await D1.batch([ D1.prepare("UPDATE events SET performed_at = ? WHERE id = ?;").bind( Date.now(), diff --git a/functions/api/events-team/events/[id]/forgotten.ts b/functions/api/events-team/events/[id]/forgotten.ts index 11f83e4..935fa81 100644 --- a/functions/api/events-team/events/[id]/forgotten.ts +++ b/functions/api/events-team/events/[id]/forgotten.ts @@ -5,6 +5,15 @@ export async function onRequestPost(context: RequestContext) { const { event } = context.data; try { + const row = await D1.prepare( + "SELECT performed_at FROM events WHERE id = ?;", + ) + .bind(event.id) + .first(); + + if (typeof row?.performed_at !== "number") + return jsonError("Event already marked as completed or forgotten", 400); + await D1.batch([ D1.prepare("UPDATE events SET performed_at = 0 WHERE id = ?;").bind( event.id,