From 2b4f72a1ee5dd8d37a405e45917f93f90408b8fa Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 12 Nov 2025 03:34:13 +0000 Subject: [PATCH] Foundation Admin - Mentor Approval Endpoint cgen-c461da47e45947cc881a81949f81c690 --- api/admin/foundation/mentors/[id].ts | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 api/admin/foundation/mentors/[id].ts diff --git a/api/admin/foundation/mentors/[id].ts b/api/admin/foundation/mentors/[id].ts new file mode 100644 index 00000000..e0fc7613 --- /dev/null +++ b/api/admin/foundation/mentors/[id].ts @@ -0,0 +1,40 @@ +import { createClient } from "@supabase/supabase-js"; + +const supabase = createClient( + process.env.VITE_SUPABASE_URL!, + process.env.SUPABASE_SERVICE_ROLE! +); + +export default async function handler(req: any, res: any) { + const { id } = req.query; + + if (req.method === "PUT") { + try { + const { approval_status } = req.body; + + if (!["pending", "approved", "rejected"].includes(approval_status)) { + return res.status(400).json({ error: "Invalid approval status" }); + } + + const { data, error } = await supabase + .from("foundation_mentors") + .update({ + approval_status, + approved_by: req.user?.id, // Assumes middleware sets req.user + approved_at: approval_status === "approved" ? new Date().toISOString() : null, + }) + .eq("user_id", id) + .select(); + + if (error) throw error; + + res.status(200).json(data); + } catch (error: any) { + res + .status(500) + .json({ error: error.message || "Failed to update mentor" }); + } + } else { + res.status(405).json({ error: "Method not allowed" }); + } +}