import {app} from "@/firebase"; import {User} from "@/interfaces/user"; import {sessionOptions} from "@/lib/session"; import {getAuth} from "firebase/auth"; import {doc, getDoc, getFirestore} from "firebase/firestore"; import {withIronSessionApiRoute} from "iron-session/next"; import {NextApiRequest, NextApiResponse} from "next"; const auth = getAuth(app); const db = getFirestore(app); export default withIronSessionApiRoute(user, sessionOptions); async function user(req: NextApiRequest, res: NextApiResponse) { if (req.session.user) { const docUser = await getDoc(doc(db, "users", req.session.user.id)); if (!docUser.exists()) { res.status(401).json(undefined); return; } const user = docUser.data() as User; req.session.user = {...user, id: req.session.user.id}; await req.session.save(); res.json({...user, id: req.session.user.id}); } else { res.status(401).json(undefined); } }