From d5b488a5c91ecb68e436e55eb88139f8ce656495 Mon Sep 17 00:00:00 2001 From: Yael Monterrubio <142482823+Y4ELX@users.noreply.github.com> Date: Sun, 19 Apr 2026 14:54:15 -0600 Subject: [PATCH] fix: handle not found errors for Mii and User in API responses --- backend/src/app/api/mii/[id]/info/route.ts | 2 ++ backend/src/app/api/profile/[id]/info/route.ts | 2 ++ frontend/src/pages/mii.tsx | 2 ++ frontend/src/pages/profile/layout.tsx | 10 ++++++---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/backend/src/app/api/mii/[id]/info/route.ts b/backend/src/app/api/mii/[id]/info/route.ts index ca7f102..a97f617 100644 --- a/backend/src/app/api/mii/[id]/info/route.ts +++ b/backend/src/app/api/mii/[id]/info/route.ts @@ -34,5 +34,7 @@ export async function GET(request: NextRequest, { params }: { params: Promise<{ }, }); + if (!mii) return NextResponse.json({ error: "Mii not found" }, { status: 404 }); + return NextResponse.json(mii); } diff --git a/backend/src/app/api/profile/[id]/info/route.ts b/backend/src/app/api/profile/[id]/info/route.ts index 410d30d..792b2e4 100644 --- a/backend/src/app/api/profile/[id]/info/route.ts +++ b/backend/src/app/api/profile/[id]/info/route.ts @@ -21,5 +21,7 @@ export async function GET(request: NextRequest, { params }: { params: Promise<{ }, }); + if (!user) return NextResponse.json({ error: "User not found" }, { status: 404 }); + return NextResponse.json(user); } diff --git a/frontend/src/pages/mii.tsx b/frontend/src/pages/mii.tsx index fa5f853..c1d241f 100644 --- a/frontend/src/pages/mii.tsx +++ b/frontend/src/pages/mii.tsx @@ -32,6 +32,8 @@ export default function MiiPage() { return res.json(); }) .then((data) => { + if (!data) throw new Error("Mii not found"); + setMii(data); setLoading(false); diff --git a/frontend/src/pages/profile/layout.tsx b/frontend/src/pages/profile/layout.tsx index 5a16395..25b20a0 100644 --- a/frontend/src/pages/profile/layout.tsx +++ b/frontend/src/pages/profile/layout.tsx @@ -28,6 +28,8 @@ export default function ProfileLayout() { return res.json(); }) .then((data) => { + if (!data) throw new Error("Profile not found"); + setUser(data); setLoading(false); }) @@ -42,11 +44,11 @@ export default function ProfileLayout() { return
Loading...
; } - const currentUser = user ?? $session?.user; + const sessionUserId = $session?.user?.id ? Number($session.user.id) : null; const page = location.pathname; - const isAdmin = currentUser?.id === Number(import.meta.env.VITE_ADMIN_USER_ID); - const isContributor = import.meta.env.VITE_CONTRIBUTORS_USER_IDS?.split(",").includes(user?.id); - const isOwnProfile = currentUser?.id === user?.id; + const isAdmin = sessionUserId === Number(import.meta.env.VITE_ADMIN_USER_ID); + const isContributor = import.meta.env.VITE_CONTRIBUTORS_USER_IDS?.split(",").includes(String(user?.id)); + const isOwnProfile = sessionUserId === user?.id; return (