almeira-web/check_config.js

75 lines
2.3 KiB
JavaScript

const { Client, Databases } = require('node-appwrite');
async function checkConfig() {
console.log('🔍 Validando configuración de Almeira Web...\n');
const requiredVars = [
'NEXT_PUBLIC_APPWRITE_ENDPOINT',
'NEXT_PUBLIC_APPWRITE_PROJECT_ID',
'APPWRITE_API_KEY',
'APPWRITE_DATABASE_ID'
];
let missing = false;
requiredVars.forEach(v => {
if (!process.env[v]) {
console.error(`❌ Faltante: Variable de entorno ${v}`);
missing = true;
} else {
console.log(`✅ Presente: ${v}`);
}
});
if (missing) {
console.error('\n🛑 Error: Faltan variables de entorno críticas. Revisa tu archivo .env.local.');
process.exit(1);
}
const client = new Client()
.setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT)
.setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID)
.setKey(process.env.APPWRITE_API_KEY);
const databases = new Databases(client);
const databaseId = process.env.APPWRITE_DATABASE_ID;
try {
console.log(`\n📡 Conectando a Appwrite (${process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT})...`);
const db = await databases.get(databaseId);
console.log(`✅ Conexión exitosa a la base de datos: "${db.name}" (${databaseId})`);
const collectionsToCheck = [
'posts',
'settings',
'publication_types',
'categories',
'whatsapp_messages',
'entidad'
];
console.log('\n📦 Verificando colecciones críticas...');
for (const colId of collectionsToCheck) {
try {
const col = await databases.getCollection(databaseId, colId);
console.log(`✅ Colección encontrada: ${col.name} (${colId})`);
} catch (err) {
console.error(`❌ Error en colección ${colId}: ${err.message}`);
missing = true;
}
}
} catch (err) {
console.error(`❌ Error de conexión a Appwrite: ${err.message}`);
process.exit(1);
}
if (missing) {
console.error('\n🛑 Algunas colecciones no fueron encontradas. Revisa la base de datos en Appwrite.');
process.exit(1);
}
console.log('\n✨ ¡Configuración validada correctamente para producción!');
}
checkConfig();