159 lines
4.9 KiB
JavaScript
159 lines
4.9 KiB
JavaScript
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();
|