import { NextResponse } from "next/server"; import { z } from "zod"; import { db } from "@/lib/db"; // get a single gweet export async function GET(request: Request, { params }: { params: { id: string } }) { const { id } = params; const gweetIdSchema = z.string().cuid(); const zod = gweetIdSchema.safeParse(id); if (!zod.success) { return NextResponse.json( { message: "Invalid request body", error: zod.error.formErrors, }, { status: 400 }, ); } try { const gweet = await db.gweet.findUnique({ where: { id, }, include: { author: true, likes: { include: { user: { include: { followers: true, }, }, }, orderBy: { createdAt: "desc", }, }, media: true, regweets: { include: { user: { include: { followers: true, }, }, }, orderBy: { createdAt: "desc", }, }, quote: { include: { author: true, media: true, }, }, allQuotes: { include: { likes: true, regweets: true, author: true, quote: { include: { author: true, }, }, }, orderBy: { createdAt: "desc", }, }, }, }); if (!gweet) { return NextResponse.json( { message: "Gweet not found", }, { status: 404 }, ); } return NextResponse.json(gweet, { status: 200 }); } catch (error) { return NextResponse.json( { message: "Something went wrong", error, }, { status: 500 }, ); } }