From def9e38341a03e7fba1d9bff2e85d3851c2ce6e7 Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Wed, 29 Oct 2025 08:34:01 +0100 Subject: [PATCH] Fix api invite --- api/src/tablo.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/src/tablo.ts b/api/src/tablo.ts index a45c1ac..ad38b3d 100644 --- a/api/src/tablo.ts +++ b/api/src/tablo.ts @@ -376,7 +376,7 @@ tabloRouter.post("/invite/:tabloId", regularUserCheckMiddleware, checkTabloAdmin .from("tablos") .select("name") .eq("id", tabloId) - .single(); + .maybeSingle(); if (tabloError || !tablo) { return c.json({ error: "Tablo not found" }, 404); @@ -388,7 +388,7 @@ tabloRouter.post("/invite/:tabloId", regularUserCheckMiddleware, checkTabloAdmin .from("user_introductions") .select("config") .eq("user_id", sender.id) - .single(); + .maybeSingle(); if (introError) { return c.json({ error: introError.message }, 500); @@ -404,6 +404,10 @@ tabloRouter.post("/invite/:tabloId", regularUserCheckMiddleware, checkTabloAdmin }); if (error) { + // Check if this is a duplicate invite error + if (error.code === "23505") { + return c.json({ error: "User has already been invited to this tablo" }, 409); + } return c.json({ error: error.message }, 500); } @@ -497,7 +501,7 @@ tabloRouter.post("/invite/:tabloId", regularUserCheckMiddleware, checkTabloAdmin .select("id") .eq("tablo_id", tabloId) .eq("user_id", recipientUser.id) - .single(); + .maybeSingle(); if (existingAccessError) { return c.json({ error: existingAccessError.message }, 500);