plazbot-cli
Version:
CLI para Plazbot SDK
55 lines (48 loc) • 1.89 kB
text/typescript
import { Command } from 'commander';
import { Portal } from 'plazbot';
import { getStoredCredentials } from '../../utils/credentials';
import { logger } from '../../utils/logger';
import { PortalCommandOptions } from '../../types/portal';
export const createCommand = new Command('create')
.description('Crea un nuevo portal con configuración simplificada')
.requiredOption('-n, --name <name>', 'Nombre del portal')
.requiredOption('-t, --title <title>', 'Título de bienvenida del portal')
.option('--dev', 'Usar ambiente de desarrollo', false)
.action(async (options: PortalCommandOptions & { name: string; title: string }) => {
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🚀 Creando portal...');
const portalCreated = await portal.addPortal({
name: options.name,
title: options.title,
zone: credentials.zone as "LA" | "EU",
// Valores por defecto
subtitle: "",
logo: "",
logodark: "",
access: "direct",
disabled: false,
brandOff: false
});
logger.success('Portal creado exitosamente');
logger.info('\n📋 Detalles del portal:');
logger.divider();
logger.info(`ID: ${portalCreated.id}`);
logger.info(`URL: ${portalCreated.url}`);
logger.divider();
if (options.dev) {
logger.warning('\nAmbiente: desarrollo');
}
} catch (error) {
const message = error instanceof Error ? error.message : 'Error desconocido al crear el portal';
logger.error(message);
process.exit(1);
}
});