UNPKG

plazbot-cli

Version:
63 lines (52 loc) 2.15 kB
import { Command } from 'commander'; import { Portal } from 'plazbot'; import { getStoredCredentials } from '../../utils/credentials'; import { logger } from '../../utils/logger'; import { PortalCommandOptions, PortalResponse } from '../../types/portal'; import inquirer from 'inquirer'; export const deleteCommand = new Command('delete') .description('Elimina un portal') .argument('<portalId>', 'ID del portal') .option('--force', 'Eliminar sin confirmación', false) .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" }) }); // Obtener detalles del portal para mostrar qué se va a eliminar const portalDetails = await portal.getPortal(portalId) as PortalResponse; logger.info('\n🗑️ Portal a eliminar:'); logger.divider(); logger.info(`ID: ${portalDetails.portal.id}`); logger.info(`Nombre: ${portalDetails.portal.name}`); logger.info(`URL: ${portalDetails.portal.url}`); if (!options.force) { const { confirm } = await inquirer.prompt([{ type: 'confirm', name: 'confirm', message: '¿Estás seguro de que quieres eliminar este portal?', default: false }]); if (!confirm) { logger.info('Operación cancelada.'); return; } } logger.info('\n🔄 Eliminando portal...'); await portal.deletePortal(portalId); logger.success('Portal eliminado exitosamente'); if (options.dev) { logger.warning('\nAmbiente: desarrollo'); } } catch (error) { const message = error instanceof Error ? error.message : 'Error desconocido al eliminar el portal'; logger.error(message); process.exit(1); } });