import { jsonError } from "../../../../common.js";

export async function onRequestPost(context: RequestContext) {
  const id = context.params.id as string;
  const { D1 } = context.env;

  await D1.exec("BEGIN TRANSACTION;");

  try {
    const row = await D1.prepare(
      "UPDATE events SET performed_at = ? WHERE id = ? RETURNING created_by;",
    )
      .bind(Date.now(), id)
      .first();

    if (!row) {
      await D1.exec("ROLLBACK;");
      return jsonError("Event does not exist", 404);
    }

    await D1.prepare("UPDATE et_members SET points = points + 10 WHERE id = ?;")
      .bind(row.created_by)
      .run();

    await D1.exec("COMMIT;");
  } catch (e) {
    console.log(e);
    await D1.exec("ROLLBACK;");

    return jsonError("Failed to update event data", 500);
  }

  return new Response(null, {
    status: 204,
  });
}