Files
ACVE/app/api/auth/session/route.ts
2026-03-15 13:52:11 +00:00

39 lines
1.1 KiB
TypeScript

import { NextResponse } from "next/server";
import { db } from "@/lib/prisma";
import { UserRole } from "@prisma/client";
import { supabaseServer } from "@/lib/supabase/server";
export async function GET() {
try {
const supabase = await supabaseServer();
if (!supabase) {
return NextResponse.json({ user: null, isTeacher: false });
}
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) {
return NextResponse.json({ user: null, isTeacher: false });
}
const profile = await db.profile.findUnique({
where: { id: user.id },
select: { role: true },
}).catch(() => null);
const isTeacher =
!!profile &&
(profile.role === UserRole.TEACHER || profile.role === UserRole.SUPER_ADMIN);
return NextResponse.json({
user: { id: user.id, email: user.email ?? null },
isTeacher,
});
} catch (error) {
console.error("Failed to resolve auth session route. Returning anonymous fallback.", error);
return NextResponse.json({ user: null, isTeacher: false });
}
}