From 129ae7093011e5c3c7dec19060807034d0bd8bfb Mon Sep 17 00:00:00 2001 From: rever-tecnologia Date: Mon, 15 Dec 2025 16:43:34 -0300 Subject: [PATCH] =?UTF-8?q?feat(api):=20adiciona=20endpoint=20para=20corri?= =?UTF-8?q?gir=20sess=C3=B5es=20de=20chat=20antigas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - POST /api/admin/fix-chat-sessions - Chama mutation fixLegacySessions do Convex - Requer autenticação de admin 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/app/api/admin/fix-chat-sessions/route.ts | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/app/api/admin/fix-chat-sessions/route.ts diff --git a/src/app/api/admin/fix-chat-sessions/route.ts b/src/app/api/admin/fix-chat-sessions/route.ts new file mode 100644 index 0000000..3ed362c --- /dev/null +++ b/src/app/api/admin/fix-chat-sessions/route.ts @@ -0,0 +1,30 @@ +import { NextResponse } from "next/server" +import { ConvexHttpClient } from "convex/browser" +import { api } from "@/convex/_generated/api" +import { assertAdminSession } from "@/lib/auth-server" + +export const runtime = "nodejs" + +export async function POST() { + const session = await assertAdminSession() + if (!session) { + return NextResponse.json({ error: "Não autorizado" }, { status: 401 }) + } + + const convexUrl = process.env.NEXT_PUBLIC_CONVEX_URL + if (!convexUrl) { + return NextResponse.json({ error: "CONVEX_URL não configurada" }, { status: 500 }) + } + + try { + const convex = new ConvexHttpClient(convexUrl) + const result = await convex.mutation(api.liveChat.fixLegacySessions, {}) + return NextResponse.json({ success: true, result }) + } catch (error) { + console.error("[fix-chat-sessions] Erro:", error) + return NextResponse.json( + { error: error instanceof Error ? error.message : "Falha ao corrigir sessões" }, + { status: 500 } + ) + } +}