From 4f08791f98ddf243bc6e2582a5f0b01a340a6619 Mon Sep 17 00:00:00 2001 From: Regalijan Date: Tue, 10 Sep 2024 16:34:56 -0400 Subject: [PATCH] Improve event editing endpoint --- functions/api/events-team/events/[id].ts | 31 ++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/functions/api/events-team/events/[id].ts b/functions/api/events-team/events/[id].ts index a9af9c1..f8a95d8 100644 --- a/functions/api/events-team/events/[id].ts +++ b/functions/api/events-team/events/[id].ts @@ -31,11 +31,12 @@ export async function onRequestDelete(context: RequestContext) { export async function onRequestPatch(context: RequestContext) { const eventId = context.params.id as string; const { body } = context.data; - const eventData = await context.env.D1.prepare( - "SELECT answer, created_by, details FROM events WHERE id = ?;", - ) - .bind(eventId) - .first(); + const eventData: Record | null = + await context.env.D1.prepare( + "SELECT answer, created_by, day, details, month, year FROM events WHERE id = ?;", + ) + .bind(eventId) + .first(); if (!eventData) return jsonError("No event exists with that ID", 404); @@ -51,11 +52,27 @@ export async function onRequestPatch(context: RequestContext) { eventData.details &&= body.details; await context.env.D1.prepare( - "UPDATE events SET answer = ?, details = ? WHERE id = ?;", + "UPDATE events SET answer = ?, approved = 0, day = ?, details = ?, pending = 1 WHERE id = ?;", ) - .bind(eventData.answer, eventData.details, eventId) + .bind(eventData.answer, eventData.day, eventData.details, eventId) .run(); + await fetch(context.env.EVENTS_WEBHOOK, { + body: JSON.stringify({ + embeds: [ + { + title: "Event Modified", + color: 3756250, + description: `${context.data.current_user.username} updated their ${(eventData.type as string).toUpperCase()} for ${eventData.year}-${eventData.month.toString().padStart(2, "0")}-${eventData.day.toString().padStart(2, "0")}`, + }, + ], + }), + headers: { + "content-type": "application/json", + }, + method: "POST", + }); + return new Response(null, { status: 204, });