fix: handle not found errors for Mii and User in API responses

This commit is contained in:
Yael Monterrubio 2026-04-19 14:54:15 -06:00
parent d58054a587
commit d5b488a5c9
4 changed files with 12 additions and 4 deletions

View file

@ -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); return NextResponse.json(mii);
} }

View file

@ -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); return NextResponse.json(user);
} }

View file

@ -32,6 +32,8 @@ export default function MiiPage() {
return res.json(); return res.json();
}) })
.then((data) => { .then((data) => {
if (!data) throw new Error("Mii not found");
setMii(data); setMii(data);
setLoading(false); setLoading(false);

View file

@ -28,6 +28,8 @@ export default function ProfileLayout() {
return res.json(); return res.json();
}) })
.then((data) => { .then((data) => {
if (!data) throw new Error("Profile not found");
setUser(data); setUser(data);
setLoading(false); setLoading(false);
}) })
@ -42,11 +44,11 @@ export default function ProfileLayout() {
return <div className="p-6 text-center">Loading...</div>; return <div className="p-6 text-center">Loading...</div>;
} }
const currentUser = user ?? $session?.user; const sessionUserId = $session?.user?.id ? Number($session.user.id) : null;
const page = location.pathname; const page = location.pathname;
const isAdmin = currentUser?.id === Number(import.meta.env.VITE_ADMIN_USER_ID); const isAdmin = sessionUserId === Number(import.meta.env.VITE_ADMIN_USER_ID);
const isContributor = import.meta.env.VITE_CONTRIBUTORS_USER_IDS?.split(",").includes(user?.id); const isContributor = import.meta.env.VITE_CONTRIBUTORS_USER_IDS?.split(",").includes(String(user?.id));
const isOwnProfile = currentUser?.id === user?.id; const isOwnProfile = sessionUserId === user?.id;
return ( return (
<div> <div>