From 56cbf1e69e6a2c56fd1e4d3e9e1d5506370acab4 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 12 Nov 2025 03:34:21 +0000 Subject: [PATCH] Foundation Admin - Individual Course Management cgen-dd6ede011af647da8375af3d5c4f23b6 --- api/admin/foundation/courses/[id].ts | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 api/admin/foundation/courses/[id].ts diff --git a/api/admin/foundation/courses/[id].ts b/api/admin/foundation/courses/[id].ts new file mode 100644 index 00000000..245aaf18 --- /dev/null +++ b/api/admin/foundation/courses/[id].ts @@ -0,0 +1,47 @@ +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 { is_published } = req.body; + + const { data, error } = await supabase + .from("foundation_courses") + .update({ is_published }) + .eq("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 course" }); + } + } else if (req.method === "DELETE") { + try { + const { error } = await supabase + .from("foundation_courses") + .delete() + .eq("id", id); + + if (error) throw error; + + res.status(200).json({ message: "Course deleted" }); + } catch (error: any) { + res + .status(500) + .json({ error: error.message || "Failed to delete course" }); + } + } else { + res.status(405).json({ error: "Method not allowed" }); + } +}