113 lines
3.7 KiB
JavaScript
113 lines
3.7 KiB
JavaScript
// Script para listar todos os usuários/pacientes na API Supabase
|
||
import axios from "axios";
|
||
|
||
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
|
||
const SUPABASE_ANON_KEY =
|
||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
|
||
|
||
async function listarPacientes() {
|
||
try {
|
||
console.log("\n🔍 Buscando pacientes na API Supabase...\n");
|
||
|
||
// Primeiro, fazer login como admin para obter token
|
||
console.log("1️⃣ Fazendo login como admin...");
|
||
const loginResponse = await axios.post(
|
||
`${SUPABASE_URL}/auth/v1/token?grant_type=password`,
|
||
{
|
||
email: "riseup@popcode.com.br",
|
||
password: "riseup",
|
||
},
|
||
{
|
||
headers: {
|
||
"Content-Type": "application/json",
|
||
apikey: SUPABASE_ANON_KEY,
|
||
},
|
||
}
|
||
);
|
||
|
||
const adminToken = loginResponse.data.access_token;
|
||
console.log("✅ Login realizado com sucesso!\n");
|
||
|
||
// Tentar buscar na tabela de profiles ou users
|
||
console.log("2️⃣ Buscando usuários na tabela profiles...");
|
||
try {
|
||
const profilesResponse = await axios.get(
|
||
`${SUPABASE_URL}/rest/v1/profiles`,
|
||
{
|
||
headers: {
|
||
"Content-Type": "application/json",
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${adminToken}`,
|
||
},
|
||
}
|
||
);
|
||
|
||
console.log("\n📊 USUÁRIOS ENCONTRADOS NA TABELA PROFILES:");
|
||
console.log("Total:", profilesResponse.data.length);
|
||
console.log("\n" + "=".repeat(80) + "\n");
|
||
|
||
profilesResponse.data.forEach((user, index) => {
|
||
console.log(`${index + 1}. ${user.full_name || "Sem nome"}`);
|
||
console.log(` 📧 Email: ${user.email}`);
|
||
console.log(` 🆔 ID: ${user.id}`);
|
||
console.log(` 👤 Role: ${user.role || "Não definido"}`);
|
||
console.log(` 📞 Telefone: ${user.phone || "Não informado"}`);
|
||
console.log(` 📅 Criado em: ${user.created_at}`);
|
||
console.log("");
|
||
});
|
||
|
||
// Filtrar apenas pacientes
|
||
const pacientes = profilesResponse.data.filter(
|
||
(u) => u.role === "paciente" || u.role === "user"
|
||
);
|
||
console.log(`\n👥 TOTAL DE PACIENTES: ${pacientes.length}`);
|
||
} catch (error) {
|
||
if (error.response && error.response.status === 404) {
|
||
console.log('❌ Tabela "profiles" não existe\n');
|
||
} else {
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
// Tentar buscar usuários via função
|
||
console.log("\n3️⃣ Tentando buscar via função list-users...");
|
||
try {
|
||
const usersResponse = await axios.get(
|
||
`${SUPABASE_URL}/functions/v1/list-users`,
|
||
{
|
||
headers: {
|
||
"Content-Type": "application/json",
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${adminToken}`,
|
||
},
|
||
}
|
||
);
|
||
|
||
console.log("\n📊 USUÁRIOS VIA FUNÇÃO:");
|
||
console.log(JSON.stringify(usersResponse.data, null, 2));
|
||
} catch (error) {
|
||
if (error.response && error.response.status === 404) {
|
||
console.log('❌ Função "list-users" não existe\n');
|
||
} else {
|
||
console.log(
|
||
"⚠️ Erro ao buscar via função:",
|
||
error.response?.data || error.message
|
||
);
|
||
}
|
||
}
|
||
|
||
console.log("\n" + "=".repeat(80));
|
||
console.log("✨ Busca concluída!\n");
|
||
} catch (error) {
|
||
console.error("❌ Erro ao listar pacientes:");
|
||
if (error.response) {
|
||
console.error(" Status:", error.response.status);
|
||
console.error(" Dados:", JSON.stringify(error.response.data, null, 2));
|
||
} else {
|
||
console.error(" Mensagem:", error.message);
|
||
}
|
||
}
|
||
}
|
||
|
||
listarPacientes();
|