import { eq } from "drizzle-orm"; import { agents } from "~~/db/schema"; export default defineEventHandler(async (event) => { await protectRoute(event); const db = useDrizzle(); const { id } = event.context.params!; const [row] = await db.select().from(agents).where(eq(agents.id, id)); if (row === undefined || row.userId !== event.context.user.id) { throw createError({ statusCode: 404, statusMessage: 'Agent not found' }); } const { name, systemPrompt, imageUrl } = await readBody(event); const updateObject: Partial = {}; if (name !== undefined) updateObject.name = name; if (systemPrompt !== undefined) updateObject.systemPrompt = systemPrompt; if (imageUrl !== undefined) updateObject.imageUrl = imageUrl; if (Object.keys(updateObject).length === 0) { throw createError({ statusCode: 400, statusMessage: 'No update data provided' }); } const [agent] = await db.update(agents).set(updateObject).where(eq(agents.id, id)).returning(); return agent; });