import { jsonError } from "../../../../common.js"; import sendEmail from "../../../../email.js"; export async function onRequestPost(context: RequestContext) { if (typeof context.data.body.approved !== "boolean") return jsonError("Decision type must be a boolean", 400); const updatedEvent: Record | null = await context.env.D1.prepare( "UPDATE events SET approved = ?, pending = 0 WHERE id = ? RETURNING created_by, day, month, year;", ) .bind(Number(context.data.body.approved), context.data.event.id) .first(); if (!updatedEvent) return jsonError("This event does not exist", 404); const emailData: { email: string; type: string } | null = await context.env.DATA.get(`eventemail_${context.data.event.id}`, { type: "json", }); const usernameData: Record | null = await context.env.D1.prepare("SELECT name FROM et_members WHERE id = ?;") .bind(updatedEvent.created_by) .first(); if (emailData && usernameData) { await sendEmail( emailData.email, context.env.MAILGUN_API_KEY, `Event ${context.data.body.approved ? "Approved" : "Rejected"}`, `event_${context.data.body.approved ? "approved" : "rejected"}`, { date: `${updatedEvent.year}-${updatedEvent.month.toString().padStart(2, "0")}-${updatedEvent.day.toString().padStart(2, "0")}`, event: emailData.type, username: usernameData.name, }, ); } await context.env.DATA.delete(`eventemail_${context.data.event.id}`); return new Response(null, { status: 204, }); }