diff --git a/src/app/api/profile/avatar/route.ts b/src/app/api/profile/avatar/route.ts index 07faa20..cdb4d38 100644 --- a/src/app/api/profile/avatar/route.ts +++ b/src/app/api/profile/avatar/route.ts @@ -5,8 +5,10 @@ */ import { NextRequest, NextResponse } from "next/server" +import { headers } from "next/headers" import { getServerSession } from "@/lib/auth-server" +import { auth } from "@/lib/auth" import { prisma } from "@/lib/prisma" import { DEFAULT_TENANT_ID } from "@/lib/constants" import { createConvexClient } from "@/server/convex-client" @@ -73,12 +75,21 @@ export async function POST(request: NextRequest) { return NextResponse.json({ error: "Erro ao obter URL do avatar" }, { status: 500 }) } - // Atualiza o usuário no banco - await prisma.authUser.update({ - where: { id: session.user.id }, - data: { avatarUrl }, + // Usa updateUser do Better Auth para invalidar o cache da sessao + const headerList = await headers() + const updateResult = await auth.api.updateUser({ + headers: headerList, + body: { avatarUrl }, }) + if (!updateResult) { + // Fallback: atualiza diretamente no Prisma + await prisma.authUser.update({ + where: { id: session.user.id }, + data: { avatarUrl }, + }) + } + // Sincroniza com o Convex try { const tenantId = session.user.tenantId ?? DEFAULT_TENANT_ID @@ -109,12 +120,21 @@ export async function DELETE() { return NextResponse.json({ error: "Não autorizado" }, { status: 401 }) } - // Remove a imagem do usuário (volta ao padrão) - await prisma.authUser.update({ - where: { id: session.user.id }, - data: { avatarUrl: null }, + // Usa updateUser do Better Auth para invalidar o cache da sessao + const headerList = await headers() + const updateResult = await auth.api.updateUser({ + headers: headerList, + body: { avatarUrl: null }, }) + if (!updateResult) { + // Fallback: atualiza diretamente no Prisma + await prisma.authUser.update({ + where: { id: session.user.id }, + data: { avatarUrl: null }, + }) + } + // Sincroniza com o Convex try { const convex = createConvexClient()