Files
rodrigonet/test-callbacks.js
T
2025-08-08 10:22:27 -03:00

74 lines
2.2 KiB
JavaScript

// Teste de parsing de callbacks
console.log('🧪 Testando parsing de callbacks...\n');
// Simular dados de callback
const testCallbacks = [
'check_signal_olt_dito_DACM91569513',
'check_signal_olt_colmeia_ABCD12345678',
'check_signal_olt_canaa_TEST123456',
'check_signal_olt_canaa2_SERIAL789',
'show_config_olt_dito_1/1/1_10',
'show_config_olt_canaa2_2/2/2_25'
];
function parseCheckSignalCallback(data) {
const parts = data.split('_');
let oltId, serialNumber;
if (parts.length === 5) {
// Caso: check_signal_olt_dito_SERIAL
oltId = parts[2] + '_' + parts[3]; // "olt_dito"
serialNumber = parts[4];
} else if (parts.length === 4) {
// Caso: check_signal_oltid_SERIAL
oltId = parts[2];
serialNumber = parts[3];
} else {
// Tentar reconstruir dinamicamente
oltId = parts.slice(2, -1).join('_');
serialNumber = parts[parts.length - 1];
}
return { oltId, serialNumber };
}
function parseShowConfigCallback(data) {
const parts = data.split('_');
let oltId, slot, onuId;
if (parts.length === 6) {
// Caso: show_config_olt_dito_slot_onuid
oltId = parts[2] + '_' + parts[3]; // "olt_dito"
slot = parts[4];
onuId = parts[5];
} else if (parts.length === 5) {
// Caso: show_config_oltid_slot_onuid
oltId = parts[2];
slot = parts[3];
onuId = parts[4];
} else {
// Tentar reconstruir dinamicamente
onuId = parts[parts.length - 1];
slot = parts[parts.length - 2];
oltId = parts.slice(2, -2).join('_');
}
return { oltId, slot, onuId };
}
testCallbacks.forEach((callback, index) => {
console.log(`${index + 1}. Callback: "${callback}"`);
if (callback.startsWith('check_signal_')) {
const result = parseCheckSignalCallback(callback);
console.log(` Resultado: OLT="${result.oltId}", Serial="${result.serialNumber}"`);
} else if (callback.startsWith('show_config_')) {
const result = parseShowConfigCallback(callback);
console.log(` Resultado: OLT="${result.oltId}", Slot="${result.slot}", ONU="${result.onuId}"`);
}
console.log('');
});
console.log('✅ Teste concluído!');