riseup-squad18/MEDICONNECT 2/scripts/criar-usuario-julia.js
2025-10-07 14:53:47 -03:00

159 lines
4.9 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import axios from "axios";
const SUPABASE_URL = "https://rjzjnbzjsdxgidxvmsmx.supabase.co";
const SUPABASE_ANON_KEY =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJqempuYnpqc2R4Z2lkeHZtc214Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDUwNzIyNzYsImV4cCI6MjA2MDY0ODI3Nn0.S6xtAkEZZq5W2qjSFu9xoTQCrJ8VJpIoRiDn65gvZNM";
async function criarUsuarioJulia() {
try {
console.log("📝 Criando usuária Julia Carvalho...\n");
// 1. Criar usuário no Supabase Auth
console.log("🔐 Criando usuário na autenticação...");
const signupResponse = await axios.post(
`${SUPABASE_URL}/auth/v1/signup`,
{
email: "secretaria.mediconnect@gmail.com",
password: "secretaria@mediconnect",
data: {
full_name: "Julia Carvalho",
role: "admin",
},
},
{
headers: {
apikey: SUPABASE_ANON_KEY,
"Content-Type": "application/json",
},
}
);
const userId = signupResponse.data.user?.id;
const accessToken = signupResponse.data.access_token;
if (!userId) {
throw new Error("Não foi possível obter o ID do usuário criado");
}
console.log(`✅ Usuário criado com sucesso!`);
console.log(` ID: ${userId}`);
console.log(` Email: secretaria.mediconnect@gmail.com\n`);
// 2. Criar perfil do usuário na tabela users
console.log("👤 Criando perfil na tabela users...");
const userResponse = await axios.post(
`${SUPABASE_URL}/rest/v1/users`,
{
id: userId,
email: "secretaria.mediconnect@gmail.com",
full_name: "Julia Carvalho",
is_admin: true,
is_secretary: true,
is_admin_or_manager: true,
},
{
headers: {
apikey: SUPABASE_ANON_KEY,
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
Prefer: "return=representation",
},
}
);
console.log("✅ Perfil criado com sucesso!\n");
// 3. Adicionar role na tabela user_roles
console.log("🎭 Adicionando role admin...");
const roleResponse = await axios.post(
`${SUPABASE_URL}/rest/v1/user_roles`,
{
user_id: userId,
role: "admin",
},
{
headers: {
apikey: SUPABASE_ANON_KEY,
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
Prefer: "return=representation",
},
}
);
console.log("✅ Role admin adicionada com sucesso!\n");
// 4. Testar login
console.log("🔑 Testando login...");
const loginResponse = await axios.post(
`${SUPABASE_URL}/auth/v1/token?grant_type=password`,
{
email: "secretaria.mediconnect@gmail.com",
password: "secretaria@mediconnect",
},
{
headers: {
apikey: SUPABASE_ANON_KEY,
"Content-Type": "application/json",
},
}
);
console.log("✅ Login realizado com sucesso!\n");
// 5. Verificar permissões de acesso aos pacientes
console.log("🏥 Verificando acesso aos pacientes...");
const pacientesResponse = await axios.get(
`${SUPABASE_URL}/rest/v1/patients?select=id,full_name,email&limit=5`,
{
headers: {
apikey: SUPABASE_ANON_KEY,
Authorization: `Bearer ${loginResponse.data.access_token}`,
},
}
);
console.log(
`✅ Acesso aos pacientes OK! (${pacientesResponse.data.length} pacientes encontrados)\n`
);
if (pacientesResponse.data.length > 0) {
console.log("📋 Primeiros pacientes:");
pacientesResponse.data.forEach((p) => {
console.log(`${p.full_name} - ${p.email}`);
});
console.log("");
}
console.log("═══════════════════════════════════════════════════");
console.log("✅ USUÁRIA JULIA CARVALHO CRIADA COM SUCESSO!");
console.log("═══════════════════════════════════════════════════");
console.log("");
console.log("📧 Email: secretaria.mediconnect@gmail.com");
console.log("🔑 Senha: secretaria@mediconnect");
console.log("👤 Nome: Julia Carvalho");
console.log("🎭 Role: admin (permissões completas)");
console.log("");
console.log("🌐 Login em: http://localhost:5173/login-secretaria");
console.log("");
} catch (error) {
console.error(
"❌ Erro ao criar usuária:",
error.response?.data || error.message
);
if (error.response?.data?.code === "23505") {
console.log("\n⚠ Usuária já existe! Tente fazer login com:");
console.log(" Email: secretaria.mediconnect@gmail.com");
console.log(" Senha: secretaria@mediconnect");
}
}
}
criarUsuarioJulia();