genieacs: improvements

Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2026-04-02 13:32:20 -03:00
1 parent 31926ecf80
commit 8dd2680838
4 files changed
+456 -1

No files matched your search

+32
View File
@@ -115,6 +115,38 @@ class GenieACSManager {
const addResult = await this.api.adicionarTag(deviceId, tag, instance);
return { ...addResult, tag, deviceId };
}
/**
* Aplica um conjunto de setParameterValues a um dispositivo já conhecido pelo deviceId.
*
* @param {string} deviceId - _id do dispositivo no GenieACS
* @param {Array} paramValues - Array de [paramName, value, xsdType]
* @param {string} location - Texto de localização (opcional)
* @returns {Promise<Object>} - { success, error }
*/
async configurarRoteador(deviceId, paramValues, location = '') {
if (!this.isReady() || !deviceId) {
return { success: false, error: 'GenieACS não configurado ou deviceId ausente' };
}
const instance = this.config.getInstanceByLocation(location);
return this.api.setParameterValues(deviceId, paramValues, instance);
}
/**
* Relê um dispositivo pelo seu _id para obter dados atualizados.
*
* @param {string} deviceId - _id do dispositivo
* @param {string} location - Texto de localização (opcional)
* @returns {Promise<Object>} - { success, device, instance, searchedBy }
*/
async buscarRoteadorPorId(deviceId, location = '') {
if (!this.isReady() || !deviceId) {
return { success: false, error: 'GenieACS não configurado ou deviceId ausente' };
}
const instance = this.config.getInstanceByLocation(location);
const result = await this.api._buscar({ '_id': deviceId }, instance, 'id');
if (result.success) return { ...result, instance: instance.name };
return result;
}
}
module.exports = GenieACSManager;