// 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();