genieacs: implantação (TESTING)
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
3726e4d449
commit
6e2473719d
8 files changed
+439
-1
No files matched your search
@@ -3,6 +3,7 @@ const SSHManager = require('../ssh/manager');
|
||||
const { TopSappManager } = require('../topsapp');
|
||||
const FiberhomeManager = require('../fiberhome/manager');
|
||||
const FiberhomeTL1Manager = require('../fiberhome/manager_tl1');
|
||||
const { GenieACSManager } = require('../genieacs');
|
||||
const config = require('../config/config');
|
||||
const logger = require('../utils/logger');
|
||||
const DateProcessor = require('../utils/dateProcessor');
|
||||
@@ -15,6 +16,7 @@ class BotHandler {
|
||||
this.topsapp = new TopSappManager();
|
||||
this.fiberhome = new FiberhomeManager();
|
||||
this.fiberhomeTL1 = new FiberhomeTL1Manager();
|
||||
this.genieacs = new GenieACSManager();
|
||||
this.dateProcessor = new DateProcessor();
|
||||
this.userSessions = new Map(); // Armazena sessões de usuário
|
||||
this.suporteSessions = new Map(); // Armazena sessões de suporte em andamento
|
||||
@@ -252,6 +254,11 @@ class BotHandler {
|
||||
await this.handleFiberhomeStatus(chatId);
|
||||
break;
|
||||
|
||||
case 'ver_roteador':
|
||||
console.log(`📡 Executando handleVerRoteador com target: ${target}`);
|
||||
await this.handleVerRoteador(chatId, target);
|
||||
break;
|
||||
|
||||
case 'abrir_suporte':
|
||||
case 'adicionar_suporte':
|
||||
case 'criar_suporte':
|
||||
@@ -6890,6 +6897,73 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
sessaoAtiva.etapa = 'selecionar_categoria';
|
||||
await this.processarEtapaSelecionarCategoria(sessaoAtiva.id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Exibe informações do roteador/CPE via GenieACS.
|
||||
* Uso: "ver roteador <serial>" ou "ver roteador <tag/login-topsapp>"
|
||||
*/
|
||||
async handleVerRoteador(chatId, termo) {
|
||||
if (!termo) {
|
||||
await this.bot.sendMessage(chatId,
|
||||
'📡 *Ver Roteador - GenieACS*\n\n' +
|
||||
'❓ Informe o serial ou a TAG (login TopSapp) do dispositivo.\n' +
|
||||
'Exemplos:\n' +
|
||||
'• `ver roteador ABCD12345678`\n' +
|
||||
'• `ver roteador joao.silva`',
|
||||
{ parse_mode: 'Markdown' }
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
await this.bot.sendMessage(chatId, `🔍 Consultando dispositivo \`${termo}\` no GenieACS...`, { parse_mode: 'Markdown' });
|
||||
|
||||
try {
|
||||
const resultado = await this.genieacs.buscarRoteador(termo);
|
||||
|
||||
if (!resultado.success) {
|
||||
await this.bot.sendMessage(chatId,
|
||||
`❌ *Dispositivo não encontrado*\n\n` +
|
||||
`🔍 Busca: \`${termo}\`\n` +
|
||||
`⚠️ ${resultado.error}`,
|
||||
{ parse_mode: 'Markdown' }
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const d = resultado.device;
|
||||
const na = (v) => (v !== null && v !== undefined && v !== '') ? String(v) : 'N/A';
|
||||
|
||||
const tagLabel = d.tags && d.tags.length > 0 ? d.tags.join(', ') : 'N/A';
|
||||
const buscadoPor = resultado.searchedBy === 'tag' ? 'TAG' : 'Serial';
|
||||
|
||||
const msg =
|
||||
`📡 *Informações do Roteador*\n` +
|
||||
`📌 Instância: ${resultado.instance}\n` +
|
||||
`🔎 Encontrado por: ${buscadoPor}\n\n` +
|
||||
`🖥️ *Dispositivo*\n` +
|
||||
`├ Nome: ${na(d.productClass)}\n` +
|
||||
`├ Fabricante: ${na(d.manufacturer)}\n` +
|
||||
`├ OUI: ${na(d.oui)}\n` +
|
||||
`├ Serial: \`${na(d.serial)}\`\n` +
|
||||
`├ TAG (TopSapp): \`${tagLabel}\`\n` +
|
||||
`├ HW: ${na(d.hardwareVersion)}\n` +
|
||||
`└ SW: ${na(d.softwareVersion)}\n\n` +
|
||||
`📶 *Wi-Fi 2.4 GHz*\n` +
|
||||
`├ SSID: ${na(d.ssid24)}\n` +
|
||||
`├ Canal: ${na(d.channel24)}\n` +
|
||||
`└ Auto-Canal: ${d.autoChannel24}\n\n` +
|
||||
`📶 *Wi-Fi 5 GHz*\n` +
|
||||
`├ SSID: ${na(d.ssid5)}\n` +
|
||||
`├ Canal: ${na(d.channel5)}\n` +
|
||||
`└ Auto-Canal: ${d.autoChannel5}`;
|
||||
|
||||
await this.bot.sendMessage(chatId, msg, { parse_mode: 'Markdown' });
|
||||
|
||||
} catch (error) {
|
||||
logger.error('Erro em handleVerRoteador:', error);
|
||||
await this.bot.sendMessage(chatId, `❌ Erro ao consultar o GenieACS: ${error.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = BotHandler;
|
||||
Reference in new issue
Block a user