riseup-squad18/MEDICONNECT 2/scripts/verificar-todas-tabelas.js

105 lines
3.5 KiB
JavaScript

import fetch from "node-fetch";
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
const SUPABASE_ANON_KEY =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
console.log(
"🔍 DIAGNÓSTICO COMPLETO - Verificando todas as tabelas possíveis\n"
);
async function testarVariacoes() {
const testes = [
// Médicos
{ nome: "doctors", url: `${SUPABASE_URL}/rest/v1/doctors?select=*` },
{
nome: "doctors (count)",
url: `${SUPABASE_URL}/rest/v1/doctors?select=count`,
},
{ nome: "medicos", url: `${SUPABASE_URL}/rest/v1/medicos?select=*` },
{
nome: "user_directory",
url: `${SUPABASE_URL}/rest/v1/user_directory?select=*`,
},
// Pacientes
{ nome: "patients", url: `${SUPABASE_URL}/rest/v1/patients?select=*` },
{
nome: "patients (count)",
url: `${SUPABASE_URL}/rest/v1/patients?select=count`,
},
{ nome: "pacientes", url: `${SUPABASE_URL}/rest/v1/pacientes?select=*` },
// Outras tabelas possíveis
{ nome: "profiles", url: `${SUPABASE_URL}/rest/v1/profiles?select=*` },
{ nome: "users", url: `${SUPABASE_URL}/rest/v1/users?select=*` },
{
nome: "appointments",
url: `${SUPABASE_URL}/rest/v1/appointments?select=*`,
},
];
for (const teste of testes) {
console.log(`\n📋 Testando: ${teste.nome}`);
console.log("─".repeat(60));
try {
const response = await fetch(teste.url, {
method: "GET",
headers: {
apikey: SUPABASE_ANON_KEY,
Authorization: `Bearer ${SUPABASE_ANON_KEY}`,
"Content-Type": "application/json",
},
});
console.log(`Status: ${response.status}`);
if (response.ok) {
const data = await response.json();
if (Array.isArray(data)) {
console.log(`✅ ENCONTRADO! ${data.length} registro(s)`);
if (data.length > 0) {
console.log("\n📄 Primeiro registro:");
const primeiro = data[0];
const campos = Object.keys(primeiro);
console.log(`Campos disponíveis: ${campos.join(", ")}`);
console.log("\nDados:");
console.log(JSON.stringify(primeiro, null, 2).substring(0, 500));
}
} else if (data.count !== undefined) {
console.log(`✅ COUNT: ${data.count} registro(s)`);
} else {
console.log("✅ Resposta:", JSON.stringify(data).substring(0, 200));
}
} else if (response.status === 404) {
console.log("❌ Tabela não existe");
} else if (response.status === 401 || response.status === 403) {
console.log("🔒 Bloqueado por RLS (precisa autenticação)");
} else {
const error = await response.text();
console.log("❌ Erro:", error.substring(0, 200));
}
} catch (error) {
console.log("❌ Erro de conexão:", error.message);
}
// Pequeno delay entre requests
await new Promise((resolve) => setTimeout(resolve, 100));
}
console.log("\n\n" + "=".repeat(60));
console.log("🎯 RESUMO");
console.log("=".repeat(60));
console.log("Se alguma tabela mostrou registros > 0, os dados EXISTEM!");
console.log("Se todas mostraram 0, pode ser:");
console.log(" 1. Dados realmente não existem");
console.log(" 2. RLS está bloqueando a leitura");
console.log(" 3. Tabelas têm nomes diferentes");
console.log("\n");
}
testarVariacoes();