saveinmed/frontend/src/app/api/debug-registro/route.ts

122 lines
3.4 KiB
TypeScript

// @ts-nocheck
import { NextRequest, NextResponse } from "next/server";
import { databases } from "@/lib/appwrite";
import { Query } from "appwrite";
export const runtime = "edge";
export async function GET(request: NextRequest) {
console.log("🔍 [API] Debug registro usuario...");
try {
const { searchParams } = new URL(request.url);
const userId = searchParams.get("userId");
if (!userId) {
return NextResponse.json(
{ success: false, error: "userId é obrigatório" },
{ status: 400 }
);
}
const databaseId = process.env.NEXT_PUBLIC_APPWRITE_DATABASE_ID!;
const collectionId =
process.env.NEXT_PUBLIC_APPWRITE_COLLECTION_USUARIOS_ID!;
console.log("🔍 [API] Buscando usuário com auth-id-appwrite:", userId);
// Buscar usuário pelo auth-id-appwrite
const response = await databases.listDocuments(databaseId, collectionId, [
Query.equal("auth-id-appwrite", userId),
Query.limit(1),
]);
if (response.documents.length === 0) {
console.log("❌ [API] Usuário não encontrado");
return NextResponse.json({
success: true,
found: false,
message: "Usuário não encontrado na base de dados",
});
}
const usuario = response.documents[0];
console.log("✅ [API] Usuário encontrado:", usuario.$id);
// Análise detalhada dos dados
const analise = {
id: usuario.$id,
"auth-id-appwrite": usuario["auth-id-appwrite"],
"nome-civil": {
valor: usuario["nome-civil"],
preenchido: !!usuario["nome-civil"],
},
cpf: {
valor: usuario.cpf,
preenchido: !!usuario.cpf,
},
enderecos: {
valor: usuario.enderecos,
tipo: typeof usuario.enderecos,
isArray: Array.isArray(usuario.enderecos),
length: usuario.enderecos?.length || 0,
valido:
Array.isArray(usuario.enderecos) &&
usuario.enderecos.length > 0 &&
usuario.enderecos.some(
(endereco) => endereco && endereco.trim() !== ""
),
},
empresas_array: {
valor: usuario.empresas_array,
tipo: typeof usuario.empresas_array,
isArray: Array.isArray(usuario.empresas_array),
length: usuario.empresas_array?.length || 0,
valido:
usuario.empresas_array &&
Array.isArray(usuario.empresas_array) &&
usuario.empresas_array.length > 0,
},
};
const dadosFaltantes = [];
// Verificar cada campo
if (!analise["nome-civil"].preenchido || !analise.cpf.preenchido) {
dadosFaltantes.push("Dados pessoais");
}
if (!analise.enderecos.valido) {
dadosFaltantes.push("Endereço");
}
if (!analise.empresas_array.valido) {
dadosFaltantes.push("Empresa");
}
const isCompleto = dadosFaltantes.length === 0;
console.log("📋 [API] Análise completa:", {
isCompleto,
dadosFaltantes,
analise,
});
return NextResponse.json({
success: true,
found: true,
isCompleto,
dadosFaltantes,
analise,
dadosCompletos: usuario,
});
} catch (error) {
console.error("❌ [API] Erro ao debugar registro:", error);
return NextResponse.json(
{ success: false, error: "Erro ao verificar registro" },
{ status: 500 }
);
}
}