/** * Ejemplo de conexión básica con Tryton * * Este ejemplo demuestra cómo: * 1. Conectarse al servidor Tryton * 2. Obtener información del usuario y el token de sesión * 3. Buscar terceros (party.party) y mostrar sus nombres * * Instrucciones de uso: * 1. Instala las dependencias: npm install * 2. Compila el proyecto: npm run build * 3. Edita las variables de configuración abajo con tus datos de conexión * 4. Ejecuta: node dist/examples/basic-connection.js */ import { TrytonClient } from "../client"; // ==================================================== // CONFIGURACIÓN - EDITA ESTOS VALORES CON TUS DATOS // ==================================================== const config = { hostname: "https://demo7.6.tryton.org", // Servidor demo con HTTPS port: 8000, // Puerto del servidor Tryton (generalmente 8000) database: "demo7.6", // Base de datos demo username: "admin", // Usuario demo password: "admin", // Contraseña demo language: "es", // Idioma (es, en, etc.) options: { verbose: true, // Mostrar información detallada de conexión timeout: 30000, // Timeout en milisegundos }, }; // Verificar que se han completado los datos de configuración function validateConfig() { const requiredFields: (keyof typeof config)[] = [ "hostname", "database", "username", "password", ]; const missingFields = requiredFields.filter((field) => !config[field]); if (missingFields.length > 0) { console.error( "❌ Error: Faltan los siguientes campos de configuración:" ); missingFields.forEach((field) => console.error(` - ${field}`)); console.error( "\n💡 Edita este archivo y completa la configuración antes de ejecutar." ); process.exit(1); } } // Interfaz para los terceros (party.party) interface Party { id: number; name: string; code?: string; active: boolean; lang?: string; } async function main() { console.log("🚀 Iniciando ejemplo de conexión con Tryton...\n"); // Validar configuración validateConfig(); // Crear cliente console.log("📡 Creando cliente Tryton..."); const client = new TrytonClient(config); try { // Conectar al servidor console.log("🔗 Conectando al servidor..."); const connected = await client.connect(); if (!connected) { throw new Error("No se pudo establecer la conexión"); } console.log("✅ Conexión exitosa!\n"); // ==================================================== // INFORMACIÓN DEL USUARIO Y SESIÓN // ==================================================== console.log("👤 INFORMACIÓN DEL USUARIO"); console.log("=".repeat(40)); // Mostrar información básica del usuario console.log(`Usuario: ${config.username}`); console.log(`Base de datos: ${config.database}`); console.log(`Servidor: ${config.hostname}:${config.port}`); // Mostrar token de sesión const sessionToken = client.getSession(); console.log(`Token de sesión: ${sessionToken}`); console.log(""); // ==================================================== // BÚSQUEDA DE TERCEROS // ==================================================== console.log("🏢 LISTA DE TERCEROS"); console.log("=".repeat(40)); // Buscar todos los terceros activos (limitado a 20 para el ejemplo) console.log("Buscando terceros..."); const partiesData = await client.searchRead( "party.party", // Modelo de terceros [], // Dominio: todos los terceros (sin filtros) ["id", "name", "code"], // Campos a obtener 0, // Offset 20 // Límite de resultados // Sin parámetro order ); if (partiesData.length === 0) { console.log("❌ No se encontraron terceros."); } else { console.log(`✅ Se encontraron ${partiesData.length} terceros:\n`); // Mostrar lista de terceros partiesData.forEach((party, index) => { const code = party.code ? ` (${party.code})` : ""; console.log( `${(index + 1).toString().padStart(2)}. ${ party.name }${code}` ); }); } console.log("\n🎉 ¡Ejemplo completado exitosamente!"); } catch (error) { console.error("❌ Error durante la ejecución:"); const errorMessage = error instanceof Error ? error.message : String(error); console.error(errorMessage); if (config.options.verbose && error instanceof Error && error.stack) { console.error("\nStack trace:"); console.error(error.stack); } // Sugerencias de solución de problemas console.error("\n💡 Posibles soluciones:"); console.error(" - Verifica que el servidor Tryton esté ejecutándose"); console.error(" - Confirma que los datos de conexión sean correctos"); console.error( " - Asegúrate de que el usuario tenga permisos adecuados" ); console.error(" - Verifica la conectividad de red al servidor"); process.exit(1); } finally { // Cerrar la conexión si está abierta if (client && client.isConnected) { console.log("\n🔌 Cerrando conexión..."); client.close(); console.log("\n✅ Conexión cerrada."); } } } // Ejecutar el ejemplo si se llama directamente if (require.main === module) { main().catch(console.error); } export { main };