160 lines
5.0 KiB
JavaScript
160 lines
5.0 KiB
JavaScript
import fetch from "node-fetch";
|
||
|
||
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
|
||
const SUPABASE_ANON_KEY =
|
||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
|
||
|
||
// Credenciais de admin
|
||
const ADMIN_EMAIL = "riseup@popcode.com.br";
|
||
const ADMIN_PASSWORD = "riseup";
|
||
|
||
console.log("\n🗑️ DELETAR USUÁRIOS DE TESTE COM ADMIN\n");
|
||
|
||
async function deletarUsuariosTeste() {
|
||
// PASSO 1: Fazer login como admin
|
||
console.log("🔐 Fazendo login como admin...\n");
|
||
|
||
try {
|
||
const loginResponse = await fetch(
|
||
`${SUPABASE_URL}/auth/v1/token?grant_type=password`,
|
||
{
|
||
method: "POST",
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
"Content-Type": "application/json",
|
||
},
|
||
body: JSON.stringify({
|
||
email: ADMIN_EMAIL,
|
||
password: ADMIN_PASSWORD,
|
||
}),
|
||
}
|
||
);
|
||
|
||
if (!loginResponse.ok) {
|
||
console.log("❌ Login falhou:", loginResponse.status);
|
||
return;
|
||
}
|
||
|
||
const loginData = await loginResponse.json();
|
||
const adminToken = loginData.access_token;
|
||
console.log("✅ Login admin bem-sucedido!\n");
|
||
|
||
// PASSO 2: Buscar pacientes de teste
|
||
console.log('📋 Buscando pacientes de teste (email contém "teste")...\n');
|
||
|
||
const pacientesResponse = await fetch(
|
||
`${SUPABASE_URL}/rest/v1/patients?email=ilike.*teste*&select=id,full_name,email`,
|
||
{
|
||
method: "GET",
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${adminToken}`,
|
||
"Content-Type": "application/json",
|
||
},
|
||
}
|
||
);
|
||
|
||
if (!pacientesResponse.ok) {
|
||
console.log("❌ Erro ao buscar pacientes:", pacientesResponse.status);
|
||
const error = await pacientesResponse.text();
|
||
console.log(error);
|
||
return;
|
||
}
|
||
|
||
const pacientes = await pacientesResponse.json();
|
||
console.log(`Encontrados ${pacientes.length} paciente(s) de teste:\n`);
|
||
|
||
if (pacientes.length > 0) {
|
||
pacientes.forEach((p, index) => {
|
||
console.log(`${index + 1}. ${p.full_name || "Sem nome"}`);
|
||
console.log(` Email: ${p.email}`);
|
||
console.log(` ID: ${p.id}\n`);
|
||
});
|
||
|
||
// PASSO 3: Deletar pacientes de teste
|
||
console.log("🗑️ Deletando pacientes de teste...\n");
|
||
|
||
for (const paciente of pacientes) {
|
||
try {
|
||
const deleteResponse = await fetch(
|
||
`${SUPABASE_URL}/rest/v1/patients?id=eq.${paciente.id}`,
|
||
{
|
||
method: "DELETE",
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${adminToken}`,
|
||
"Content-Type": "application/json",
|
||
},
|
||
}
|
||
);
|
||
|
||
if (deleteResponse.ok || deleteResponse.status === 204) {
|
||
console.log(`✅ Deletado: ${paciente.email}`);
|
||
} else {
|
||
console.log(
|
||
`❌ Erro ao deletar ${paciente.email}:`,
|
||
deleteResponse.status
|
||
);
|
||
const error = await deleteResponse.text();
|
||
console.log(error);
|
||
}
|
||
} catch (error) {
|
||
console.log(`❌ Erro ao deletar ${paciente.email}:`, error.message);
|
||
}
|
||
}
|
||
} else {
|
||
console.log("✅ Nenhum paciente de teste encontrado!\n");
|
||
}
|
||
|
||
// PASSO 4: Tentar deletar usuários de auth (pode não funcionar sem service_role)
|
||
console.log("\n📋 Tentando deletar usuários do auth.users...\n");
|
||
console.log(
|
||
"⚠️ NOTA: A API pública normalmente NÃO permite deletar usuários."
|
||
);
|
||
console.log(" Isso requer service_role key ou acesso ao Dashboard.\n");
|
||
|
||
const emailsParaDeletar = [
|
||
"testefinal@gmail.com",
|
||
"teste1759356178698@gmail.com",
|
||
"pacienteteste",
|
||
];
|
||
|
||
console.log("Emails que deveriam ser deletados manualmente no Dashboard:");
|
||
emailsParaDeletar.forEach((email) => {
|
||
console.log(` - ${email}`);
|
||
});
|
||
|
||
console.log("\n💡 Para deletar usuários do auth.users:");
|
||
console.log(
|
||
" 1. Acesse: https://app.supabase.com/project/yuanqfswhberkoevtmfr/auth/users"
|
||
);
|
||
console.log(" 2. Busque pelos emails acima");
|
||
console.log(" 3. Clique nos 3 pontos → Delete user\n");
|
||
|
||
// Verificar resultado
|
||
console.log("\n📊 VERIFICANDO RESULTADO...\n");
|
||
|
||
const verificarResponse = await fetch(
|
||
`${SUPABASE_URL}/rest/v1/patients?email=ilike.*teste*&select=count`,
|
||
{
|
||
method: "GET",
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${adminToken}`,
|
||
"Content-Type": "application/json",
|
||
Prefer: "count=exact",
|
||
},
|
||
}
|
||
);
|
||
|
||
if (verificarResponse.ok) {
|
||
const countHeader = verificarResponse.headers.get("content-range");
|
||
console.log(`✅ Pacientes de teste restantes: ${countHeader || "0"}\n`);
|
||
}
|
||
} catch (error) {
|
||
console.error("❌ Erro:", error.message);
|
||
}
|
||
}
|
||
|
||
deletarUsuariosTeste();
|