import { getServerSession } from "next-auth"; import { NextResponse } from "next/server"; import { authOptions } from "./auth"; import { prisma } from "./db"; export async function getSessionUser() { const session = await getServerSession(authOptions); if (!session?.user?.email) return null; const user = await prisma.user.findUnique({ where: { email: session.user.email }, include: { youtubeConnection: true }, }); return user; } export async function requireAuth() { const user = await getSessionUser(); if (!user) { return { error: NextResponse.json({ error: "Unauthorized" }, { status: 401 }), user: null }; } if (!user.youtubeConnection) { return { error: NextResponse.json({ error: "YouTube account not connected" }, { status: 403 }), user: null, }; } return { error: null, user }; }