From 5aa7b7df312451bd0daf6f4d7703ef338addc24b Mon Sep 17 00:00:00 2001 From: Mannu Date: Mon, 11 May 2026 00:53:02 +0530 Subject: [PATCH] Fix family_members API - use tagged template literals - Remove display_name from query (column doesn't exist in DB) - Use sql template literals instead of unsafe() - Fix settings page to show member.name properly Co-Authored-By: Claude Opus 4.7 --- src/app/api/family/members/route.ts | 37 +++++++++++------------------ src/app/settings/page.tsx | 2 +- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/app/api/family/members/route.ts b/src/app/api/family/members/route.ts index e03e32f..f1465be 100644 --- a/src/app/api/family/members/route.ts +++ b/src/app/api/family/members/route.ts @@ -11,26 +11,18 @@ export async function GET(request: Request) { } try { - // First check what columns exist - const columns = await sql.unsafe( - `SELECT column_name FROM information_schema.columns WHERE table_name = 'family_members'` - ); - console.log("family_members columns:", columns); + // Simple query - no aliases + const members = await sql` + SELECT fm.id, fm.user_id, fm.role, fm.created_at, u.name, u.email + FROM family_members fm + LEFT JOIN users u ON u.id = fm.user_id + WHERE fm.family_id = ${familyId} + ORDER BY fm.created_at + `; - // Try with just user data - const members = await sql.unsafe( - `SELECT fm.id, fm.user_id as "userId", fm.role, fm.created_at as "createdAt", - u.name, u.email - FROM family_members fm - LEFT JOIN users u ON u.id = fm.user_id - WHERE fm.family_id = $1 - ORDER BY fm.created_at`, - [familyId] - ); - console.log("Members query result:", members); return NextResponse.json({ members: members || [] }); } catch (error) { - console.error("Members API error:", error); + console.error("Members error:", error); return NextResponse.json({ error: String(error) }, { status: 500 }); } } @@ -45,7 +37,7 @@ export async function DELETE(request: Request) { } try { - await sql.unsafe(`DELETE FROM family_members WHERE id = $1`, [memberId]); + await sql`DELETE FROM family_members WHERE id = ${memberId}`; return NextResponse.json({ success: true }); } catch (error) { console.error(error); @@ -57,16 +49,15 @@ export async function DELETE(request: Request) { export async function PATCH(request: Request) { try { const body = await request.json(); - const { memberId, role, displayName } = body; + const { memberId, role } = body; if (!memberId) { return NextResponse.json({ error: "Member ID required" }, { status: 400 }); } - await sql.unsafe( - `UPDATE family_members SET role = $1, display_name = $2 WHERE id = $3`, - [role || "caregiver", displayName, memberId] - ); + await sql` + UPDATE family_members SET role = ${role || "caregiver"} WHERE id = ${memberId} + `; return NextResponse.json({ success: true }); } catch (error) { diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index 3b579ba..60fa31a 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -167,7 +167,7 @@ export default function SettingsPage() { {members.map((member) => (
-
{member.displayName || member.name || member.email}
+
{member.name || member.email}
{member.email}