From 214b05d8466e74dd1a0a5fb8ef74f808aa5b8cf1 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sat, 8 Nov 2025 21:06:48 +0000 Subject: [PATCH] completionId: cgen-543deb37a9844b0187dcb5d6b2caece6 cgen-543deb37a9844b0187dcb5d6b2caece6 --- api/discord/role-mappings.ts | 96 ++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 38 deletions(-) diff --git a/api/discord/role-mappings.ts b/api/discord/role-mappings.ts index 98911510..69b295bd 100644 --- a/api/discord/role-mappings.ts +++ b/api/discord/role-mappings.ts @@ -116,52 +116,72 @@ export default async function handler( // PUT - Update role mapping if (req.method === "PUT") { - const { id, arm, discord_role, server_id, user_type } = req.body; + try { + const { id, arm, discord_role, server_id, user_type } = req.body; - if (!id) { - return res.status(400).json({ error: "id is required" }); + if (!id) { + return res.status(400).json({ error: "id is required" }); + } + + const updateData: any = {}; + if (arm) updateData.arm = arm; + if (discord_role) updateData.discord_role = discord_role; + if (server_id !== undefined) updateData.server_id = server_id; + if (user_type) updateData.user_type = user_type; + + const { data, error } = await supabase + .from("discord_role_mappings") + .update(updateData) + .eq("id", id) + .select() + .single(); + + if (error) { + console.error("Supabase error:", error); + return res.status(500).json({ + error: `Failed to update mapping: ${error.message}`, + }); + } + + return res.status(200).json(data); + } catch (updateErr: any) { + console.error("Update error:", updateErr); + return res.status(500).json({ + error: `Update error: ${updateErr?.message || "Unknown error"}`, + }); } - - const updateData: any = {}; - if (arm) updateData.arm = arm; - if (discord_role) updateData.discord_role = discord_role; - if (server_id !== undefined) updateData.server_id = server_id; - if (user_type) updateData.user_type = user_type; - - const { data, error } = await supabase - .from("discord_role_mappings") - .update(updateData) - .eq("id", id) - .select() - .single(); - - if (error) { - console.error("Supabase error:", error); - return res.status(500).json({ error: "Failed to update mapping" }); - } - - return res.status(200).json(data); } // DELETE - Delete role mapping if (req.method === "DELETE") { - const { id } = req.query; + try { + const { id } = req.query; - if (!id) { - return res.status(400).json({ error: "id query parameter is required" }); + if (!id) { + return res + .status(400) + .json({ error: "id query parameter is required" }); + } + + const { error } = await supabase + .from("discord_role_mappings") + .delete() + .eq("id", id); + + if (error) { + console.error("Supabase error:", error); + return res.status(500).json({ + error: `Failed to delete mapping: ${error.message}`, + }); + } + + return res.status(200).json({ success: true }); + } catch (deleteErr: any) { + console.error("Delete error:", deleteErr); + return res.status(500).json({ + error: `Delete error: ${deleteErr?.message || "Unknown error"}`, + }); } - - const { error } = await supabase - .from("discord_role_mappings") - .delete() - .eq("id", id); - - if (error) { - console.error("Supabase error:", error); - return res.status(500).json({ error: "Failed to delete mapping" }); - } - - return res.status(200).json({ success: true }); } return res.status(405).json({ error: "Method not allowed" });