diff --git a/src/app/api/admin/machines/delete/route.ts b/src/app/api/admin/machines/delete/route.ts index 9c56d61..a75a964 100644 --- a/src/app/api/admin/machines/delete/route.ts +++ b/src/app/api/admin/machines/delete/route.ts @@ -5,6 +5,7 @@ import { ConvexHttpClient } from "convex/browser" import { assertAuthenticatedSession } from "@/lib/auth-server" import { DEFAULT_TENANT_ID } from "@/lib/constants" import { api } from "@/convex/_generated/api" +import type { Id } from "@/convex/_generated/dataModel" import { prisma } from "@/lib/prisma" export const runtime = "nodejs" @@ -42,16 +43,24 @@ export async function POST(request: Request) { role: session.user.role.toUpperCase(), }) - const actorId = ensured?._id + const actorId = ensured?._id as Id<"users"> | undefined if (!actorId) { - return NextResponse.json({ error: "Falha ao obter ID do usuário no Convex" }, { status: 500 }) + return NextResponse.json({ error: "Falha ao identificar o administrador" }, { status: 500 }) } - const client = convex as unknown as { mutation: (name: string, args: unknown) => Promise } - await client.mutation("machines:remove", { - machineId: parsed.data.machineId, - actorId, - }) + try { + await convex.mutation(api.machines.remove, { + machineId: parsed.data.machineId as Id<"machines">, + actorId, + }) + } catch (error) { + const message = error instanceof Error ? error.message : "" + if (message.includes("Máquina não encontrada")) { + return NextResponse.json({ error: "Máquina não encontrada" }, { status: 404 }) + } + console.error("[machines.delete] Convex failure", error) + return NextResponse.json({ error: "Falha ao remover máquina no Convex" }, { status: 500 }) + } const machineEmail = `machine-${parsed.data.machineId}@machines.local` await prisma.authUser.deleteMany({ where: { email: machineEmail } })