import { NextResponse } from "next/server"; import { cookies } from "next/headers"; import { env } from "@utils/env"; import { PrismaClient } from "@prisma/client"; import { verifyJwt } from "@utils/verifyJwt"; const prisma = new PrismaClient(); export async function POST(req: Request) { let cookieStore; try { cookieStore = await cookies(); const token = cookieStore.get("jwt")?.value; if (!token) return NextResponse.json({ error: "No JWT found" }, { status: 401 }); const payload = await verifyJwt({ token, secret: env.JWT_SECRET_KEY }); const user = await prisma.user.findUnique({ where: { id: payload.userId }, include: { scientist: { include: { earthquakes: true, observatories: true, artefacts: true, superior: true, subordinates: true, }, }, purchasedArtefacts: true, }, }); if (user) { return NextResponse.json({ message: "Got user successfully", user }, { status: 200 }); } else { cookieStore.delete("jwt"); // Delete JWT cookie if user not found } return NextResponse.json({ message: "Failed to get user" }, { status: 401 }); } } catch (error) { console.error("Error in user endpoint:", error); cookieStore?.delete("jwt"); // Delete JWT cookie on error return NextResponse.json({ message: "Internal Server Error" }, { status: 500 }); } finally { await prisma.$disconnect(); } }