UNPKG

plazbot-cli

Version:
87 lines (86 loc) 3.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assignCommand = exports.channelsCommand = void 0; const commander_1 = require("commander"); const plazbot_1 = require("plazbot"); const credentials_1 = require("../../utils/credentials"); const logger_1 = require("../../utils/logger"); const ui_1 = require("../../utils/ui"); exports.channelsCommand = new commander_1.Command('channels') .description('Listar agentes con canales de WhatsApp asignados') .option('--dev', 'Usar ambiente de desarrollo', false) .action(async (options) => { try { const credentials = await (0, credentials_1.getStoredCredentials)(); const agent = new plazbot_1.Agent({ workspaceId: credentials.workspace, apiKey: credentials.apiKey, zone: credentials.zone, ...(options.dev && { customUrl: "http://localhost:5090" }) }); const spinner = (0, ui_1.createSpinner)('Cargando canales...'); spinner.start(); const agents = await agent.getAgents(); spinner.stop(); console.log((0, ui_1.section)('Canales WhatsApp')); const whatsappAgents = (agents || []).filter((a) => a.channels && a.channels.some((c) => c.channel === 'whatsapp')); if (whatsappAgents.length === 0) { console.log(ui_1.theme.muted('\n No hay agentes con WhatsApp configurado')); console.log(ui_1.theme.muted(' Usa el wizard: plazbot agent create\n')); return; } const rows = whatsappAgents.map((a) => { const waChannel = a.channels.find((c) => c.channel === 'whatsapp'); return [ a.id || a._id, a.name, waChannel?.key || 'N/A', (0, ui_1.statusBadge)(a.enable !== false), ]; }); console.log((0, ui_1.createTable)(['Agent ID', 'Nombre', 'Numero WhatsApp', 'Estado'], rows)); } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido'; logger_1.logger.error(message); process.exit(1); } }); exports.assignCommand = new commander_1.Command('assign') .description('Asignar un agente a un numero de WhatsApp') .argument('<phone>', 'Numero de WhatsApp') .argument('<agentId>', 'ID del agente') .option('--dev', 'Usar ambiente de desarrollo', false) .action(async (phone, agentId, options) => { try { const credentials = await (0, credentials_1.getStoredCredentials)(); const agent = new plazbot_1.Agent({ workspaceId: credentials.workspace, apiKey: credentials.apiKey, zone: credentials.zone, ...(options.dev && { customUrl: "http://localhost:5090" }) }); const spinner = (0, ui_1.createSpinner)('Cargando agente...'); spinner.start(); const agentData = await agent.getAgentById({ id: agentId }); spinner.stop(); const channels = agentData.channels || []; // Verificar si ya tiene este canal const existing = channels.findIndex((c) => c.channel === 'whatsapp' && c.key === phone); if (existing >= 0) { logger_1.logger.warning('Este numero ya esta asignado a este agente'); return; } // Agregar canal channels.push({ channel: 'whatsapp', key: phone, multianswer: false }); const updateSpinner = (0, ui_1.createSpinner)('Asignando...'); updateSpinner.start(); await agent.updateAgent(agentId, { channels }); updateSpinner.succeed(`Agente "${agentData.name}" asignado a WhatsApp ${phone}`); } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido'; logger_1.logger.error(message); process.exit(1); } });