import { bookmarkSchema, newBookmarkSchema } from '@/types' import { NextRequest, NextResponse } from 'next/server' import { db, bookmark } from '@/lib/schema' import { eq } from 'drizzle-orm' export const GET = async () => { const bookmarks = await db.select().from(bookmark) return NextResponse.json(bookmarks) } export const POST = async (request: NextRequest) => { const body = await request.json() const newBookmark = newBookmarkSchema.safeParse(body) if (newBookmark.success) { await db.insert(bookmark).values(newBookmark.data) return NextResponse.json({ status: 200 }) } return NextResponse.json(newBookmark.error) } export const PATCH = async (request: NextRequest) => { const body = await request.json() const updateBookmark = bookmarkSchema.safeParse(body) if (updateBookmark.success) { await db .update(bookmark) .set({ ...updateBookmark.data }) .where(eq(bookmark.id, updateBookmark.data.id)) return NextResponse.json({ message: 'Bookmark Updated' }) } return NextResponse.json({ message: 'Invalid Bookmark' }) } export const DELETE = async (request: NextRequest) => { const body = await request.json() const bookmarkId = body.bookmarkId await db.delete(bookmark).where(eq(bookmark.id, bookmarkId)) return NextResponse.json({ message: 'Bookmark Deleted' }) }