import { db } from "#server/db"; import * as tables from "#server/db/schema"; import { eq } from "drizzle-orm"; import { z } from "zod"; const paramsSchema = z.object({ id: z.number(), }); const bodySchema = z.object({ name: z.string().min(1).optional(), path: z.string().min(1).optional(), url: z.url().optional(), }); export default defineEventHandler(async (event) => { const params = await getValidatedRouterParams(event, paramsSchema.parse); const body = await readValidatedBody(event, bodySchema.parse); const [link] = await db .update(tables.links) .set(body) .where(eq(tables.links.id, params.id)) .returning(); if (!link) { throw createError({ statusCode: 404, message: "Link not found" }); } return link; });