131 lines
4.4 KiB
JavaScript
131 lines
4.4 KiB
JavaScript
/**
|
||
* Script para testar login do médico Fernando
|
||
* Verifica autenticação e se o usuário é identificado como médico
|
||
*/
|
||
|
||
import axios from "axios";
|
||
|
||
const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co";
|
||
const SUPABASE_ANON_KEY =
|
||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ";
|
||
|
||
const FERNANDO_EMAIL = "fernando.pirichowski@souunit.com.br";
|
||
const FERNANDO_PASSWORD = "fernando";
|
||
|
||
async function main() {
|
||
try {
|
||
console.log("🔐 TESTANDO LOGIN DO MÉDICO FERNANDO\n");
|
||
console.log("Credenciais:");
|
||
console.log(` Email: ${FERNANDO_EMAIL}`);
|
||
console.log(` Senha: ${FERNANDO_PASSWORD}\n`);
|
||
|
||
// 1. Fazer login
|
||
console.log("1️⃣ Fazendo login...\n");
|
||
const loginResponse = await axios.post(
|
||
`${SUPABASE_URL}/auth/v1/token?grant_type=password`,
|
||
{
|
||
email: FERNANDO_EMAIL,
|
||
password: FERNANDO_PASSWORD,
|
||
},
|
||
{
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
"Content-Type": "application/json",
|
||
},
|
||
}
|
||
);
|
||
|
||
const token = loginResponse.data.access_token;
|
||
const userId = loginResponse.data.user.id;
|
||
|
||
console.log("✅ Login realizado com sucesso!");
|
||
console.log(` User ID: ${userId}`);
|
||
console.log(` Email: ${loginResponse.data.user.email}\n`);
|
||
|
||
// 2. Verificar se é médico (consultar tabela doctors)
|
||
console.log("2️⃣ Verificando se usuário é médico...\n");
|
||
const doctorResponse = await axios.get(
|
||
`${SUPABASE_URL}/rest/v1/doctors?user_id=eq.${userId}&select=*`,
|
||
{
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${token}`,
|
||
},
|
||
}
|
||
);
|
||
|
||
if (doctorResponse.data.length > 0) {
|
||
const doctor = doctorResponse.data[0];
|
||
console.log("✅ USUÁRIO É MÉDICO!");
|
||
console.log("\n📋 Dados do médico:");
|
||
console.log(` ID: ${doctor.id}`);
|
||
console.log(` Nome: ${doctor.full_name}`);
|
||
console.log(` Email: ${doctor.email}`);
|
||
console.log(` CRM: ${doctor.crm}-${doctor.crm_uf}`);
|
||
console.log(` Especialidade: ${doctor.specialty}`);
|
||
console.log(` Ativo: ${doctor.active ? "Sim" : "Não"}`);
|
||
console.log(` User ID: ${doctor.user_id}\n`);
|
||
|
||
console.log("✅ LOGIN VÁLIDO - Pode acessar painel médico!");
|
||
console.log("🎯 Redirecionamento: /painel-medico\n");
|
||
} else {
|
||
console.log("❌ USUÁRIO NÃO É MÉDICO");
|
||
console.log(" Este usuário não tem registro na tabela doctors");
|
||
console.log(" Acesso ao painel médico será negado.\n");
|
||
}
|
||
|
||
// 3. Buscar consultas do médico (se aplicável)
|
||
if (doctorResponse.data.length > 0) {
|
||
console.log("3️⃣ Buscando consultas do médico...\n");
|
||
try {
|
||
const consultasResponse = await axios.get(
|
||
`${SUPABASE_URL}/rest/v1/appointments?doctor_id=eq.${doctorResponse.data[0].id}&select=*`,
|
||
{
|
||
headers: {
|
||
apikey: SUPABASE_ANON_KEY,
|
||
Authorization: `Bearer ${token}`,
|
||
},
|
||
}
|
||
);
|
||
console.log(
|
||
` Total de consultas: ${consultasResponse.data.length}\n`
|
||
);
|
||
} catch (error) {
|
||
console.log(" ⚠️ Tabela appointments não encontrada ou sem dados\n");
|
||
}
|
||
}
|
||
|
||
// 4. Resumo
|
||
console.log("📊 RESUMO DO TESTE:\n");
|
||
console.log("✅ Autenticação funcionando corretamente");
|
||
console.log("✅ Verificação de role médico implementada");
|
||
console.log("✅ Token JWT válido gerado");
|
||
console.log(
|
||
`✅ Médico: ${doctorResponse.data.length > 0 ? "SIM" : "NÃO"}\n`
|
||
);
|
||
|
||
if (doctorResponse.data.length > 0) {
|
||
console.log("🎉 TESTE BEM-SUCEDIDO!");
|
||
console.log(
|
||
"O médico Fernando pode fazer login e acessar o painel médico.\n"
|
||
);
|
||
}
|
||
} catch (error) {
|
||
console.error("❌ ERRO NO TESTE:", error.response?.data || error.message);
|
||
if (error.response) {
|
||
console.error("Status:", error.response.status);
|
||
|
||
if (error.response.status === 400) {
|
||
console.error("\n💡 Possíveis causas:");
|
||
console.error(" - Email ou senha incorretos");
|
||
console.error(" - Usuário não existe");
|
||
console.error(
|
||
" - Email não confirmado (verificar configurações Supabase)"
|
||
);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
main();
|