Skip to content
Snippets Groups Projects
route.ts 1.62 KiB
Newer Older
import { authOptions } from "@/lib/auth";
import { db } from "@/lib/db";
import { Prisma } from "@prisma/client";
import { getServerSession } from "next-auth/next";
import { revalidatePath } from "next/cache";
import { NextRequest, NextResponse } from "next/server";

type comment = Prisma.CommentUncheckedCreateInput

export async function POST(req: NextRequest) {
    const session = await getServerSession(authOptions);

    if (!session) {
        return NextResponse.json({ status: 401 });
    }

    const userId = session.user.id
    const data = await req.json()

    console.log("router data: " + data.message, "status:")

    try {
        await db.comment.create({
            data: {
                message: data.message,
                postId: data.postId,
                userId: userId,
            }
        })
        console.log("created")
        const path = req.nextUrl.searchParams.get('path') || '/';
        revalidatePath(path);

        return NextResponse.json({ status: 201, message: 'Message Created' })

    } catch (error: any) {
        console.log("fail" + error);
    }
    console.log("post")
}

export async function GET(req: NextRequest, res: NextResponse) {
    try {
        const data = await req.json()
        console.log("router data: " + data, "status:")
    } catch (error) {

    }

    try {
        const messages = await db.comment.findMany({
            orderBy: {
                createdAt: "desc"
            }
        })

        return NextResponse.json({ status: 200, messages: messages })
    } catch (error) {
        console.log("fail" + error);
        // res.status(400)
    }
    console.log("get")
}