Files
veridian/server/api/agent/[id]/index.delete.ts
T

34 lines
812 B
TypeScript

import { and, eq } from "drizzle-orm";
import { agents } from "~~/drizzle/schema";
import { db } from "~~/server/lib/db";
import { userEvents } from "~~/server/utils/events";
export default defineEventHandler(async (event) => {
await protectRoute(event);
const userId = event.context.user!.id;
const agentId = getRouterParam(event, 'id')!;
const res = await db.delete(agents).where(
and(
eq(agents.id, agentId),
eq(agents.userId, userId),
)
);
if (res.rowCount === 0) {
throw createError({
statusCode: 400,
statusMessage: 'Invalid agent',
});
}
userEvents.emit(userId, 'agents', {
op: 'delete',
payload: {
id: agentId,
},
});
return { ok: true };
});