From 94e93e46a40e6a8f9559e490b76e6669f3f1bfd3 Mon Sep 17 00:00:00 2001 From: Rodrigo Bertoldo de Sousa Martins Date: Sun, 29 Mar 2026 12:49:58 -0300 Subject: [PATCH] =?UTF-8?q?addONU:=20Adicionado=20fun=C3=A7=C3=A3o=20de=20?= =?UTF-8?q?vincular=20ao=20TopSapp=5Fpar6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rodrigo Bertoldo de Sousa Martins --- src/bot/handler.js | 8 ++++++++ src/topsapp/api.js | 19 ++++++++++++++++++- src/topsapp/manager.js | 9 +++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/bot/handler.js b/src/bot/handler.js index 4d0853b..96b039f 100644 --- a/src/bot/handler.js +++ b/src/bot/handler.js @@ -6252,6 +6252,14 @@ Digite /help para ver todos os comandos disponíveis! const resultado = await this.topsapp.atualizarFTTH(idCliente, idServico, ftthData, location); if (resultado.success) { + // Provisionar para sincronizar onuid e serviceport do OLT → TopSapp + try { + const provResult = await this.topsapp.provisionarServico(idCliente, idServico, location); + console.log(`🔄 ProvisionarServico resultado:`, JSON.stringify(provResult?.data || provResult)); + } catch (provError) { + console.warn(`⚠️ ProvisionarServico falhou (não-fatal):`, provError.message); + } + await this.bot.sendMessage(chatId, `✅ *ONU vinculada com sucesso no TopSapp!*\n\n` + `📱 *Serial:* \`${ftthData.serial}\`\n` + diff --git a/src/topsapp/api.js b/src/topsapp/api.js index aae0911..9b41320 100644 --- a/src/topsapp/api.js +++ b/src/topsapp/api.js @@ -168,7 +168,7 @@ class TopSappAPI { console.log(`📊 Status da resposta: ${response.status}`); console.log(`📋 Dados da resposta:`, response.data); - if (response.data && response.data.resultado === true) { + if (response.data && (response.data.resultado === true || response.data.status === true)) { return { success: true, data: response.data, @@ -859,6 +859,23 @@ class TopSappAPI { } } + /** + * Provisionar manualmente um serviço (sincroniza dados do OLT → TopSapp) + */ + async provisionarServico(idCliente, idServico, location = '', credentials) { + const instance = this.getInstanceByLocation(location); + try { + const session = await this.getValidSession(instance, credentials); + return await this.makeRequest('ProvisionarServico', { + idUsuario: session.idUsuario || 1, + idCliente: parseInt(idCliente), + idServico: parseInt(idServico) + }, instance, credentials); + } catch (error) { + return { success: false, error: error.message }; + } + } + /** * Listar todas as instâncias disponíveis */ diff --git a/src/topsapp/manager.js b/src/topsapp/manager.js index d4c401d..b9a807c 100644 --- a/src/topsapp/manager.js +++ b/src/topsapp/manager.js @@ -1278,6 +1278,15 @@ class TopSappManager { const credentials = this.config.getCredentialsByLocation(location); return await this.api.atualizarFTTH(idCliente, idServico, ftthData, location, credentials); } + + /** + * Provisionar manualmente um serviço (sincroniza dados do OLT → TopSapp) + */ + async provisionarServico(idCliente, idServico, location = '') { + if (!this.isReady()) return { success: false, error: 'TopSapp não configurado' }; + const credentials = this.config.getCredentialsByLocation(location); + return await this.api.provisionarServico(idCliente, idServico, location, credentials); + } } module.exports = TopSappManager;