plazbot-cli
Version:
CLI para Plazbot SDK
75 lines (63 loc) • 2.71 kB
text/typescript
import { Command } from 'commander';
import { Portal } from 'plazbot';
import { getStoredCredentials } from '../../utils/credentials';
import { logger } from '../../utils/logger';
import { PortalCommandOptions, PortalResponse, PortalLink, PortalAgent } from '../../types/portal';
export const getCommand = new Command('get')
.description('Muestra información detallada de un portal')
.argument('<portalId>', 'ID del portal')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (portalId: string, options: PortalCommandOptions) => {
try {
// Obtener credenciales guardadas
const credentials = await getStoredCredentials();
const portal = new Portal({
workspaceId: credentials.workspace,
apiKey: credentials.apiKey,
zone: credentials.zone,
...(options.dev && { customUrl: "http://localhost:5090" })
});
logger.info('\n🔄 Obteniendo detalles del portal...');
const response = await portal.getPortal(portalId) as PortalResponse;
const portalDetails = response.portal;
logger.info('\n🌐 Detalles del portal:');
logger.divider();
logger.info(`ID: ${portalDetails.id}`);
logger.info(`Nombre: ${portalDetails.name}`);
logger.info(`URL: ${portalDetails.url}`);
logger.info(`Acceso: ${portalDetails.access}`);
logger.info(`Estado: ${portalDetails.disabled ? 'Deshabilitado' : 'Habilitado'}`);
if (portalDetails.title) {
logger.info(`Título: ${portalDetails.title}`);
}
if (portalDetails.subtitle) {
logger.info(`Subtítulo: ${portalDetails.subtitle}`);
}
if (portalDetails.logo) {
logger.info(`\n🖼️ Recursos:`);
logger.info(`Logo: ${portalDetails.logo}`);
if (portalDetails.logodark) {
logger.info(`Logo (modo oscuro): ${portalDetails.logodark}`);
}
}
if (portalDetails.links && portalDetails.links.length > 0) {
logger.info('\n🔗 Enlaces:');
portalDetails.links.forEach((link: PortalLink) => {
logger.info(`- ${link.value}: ${link.url}`);
});
}
if (portalDetails.agents && portalDetails.agents.length > 0) {
logger.info('\n🤖 Agentes asociados:');
portalDetails.agents.forEach((agent: PortalAgent) => {
logger.info(`- ${agent.name} (${agent.id})`);
});
}
if (options.dev) {
logger.warning('\nAmbiente: desarrollo');
}
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al obtener detalles del portal';
logger.error(message);
process.exit(1);
}
});