Best JavaScript code snippet using wpt
remove_unregistered_devices.js
Source:remove_unregistered_devices.js
1import fs from 'fs'2import path from 'path'3// import cliProgress from 'cli-progress'4// import chalk from 'chalk'5import yaml from 'js-yaml'6import parseArgs from 'minimist'7import prompts from 'prompts'8import { fileURLToPath } from 'url'9import AXL from './utils/cucm-axl.js'10import Logger from './utils/logger.js'11const args = parseArgs(process.argv.slice(2))12// Display help and exit if13if (args.help) {14 console.log(`Usage: node ${path.basename(process.argv.slice(1, 2).toString())} [OPTION]\n`)15 console.log(`${'--config <inputfilename>'.padEnd(35)} Load YAML config file.`)16 console.log(`${'--cutoff-mark'.padEnd(35)} Cut-off mark in days.`)17 console.log(`${'--help'.padEnd(35)} Displays this help and exit.`)18 console.log(`${'--included-phone-prefixes <ATA,SEP>'.padEnd(35)} Include devices with name prefix.`)19 console.log(`${'--remove-all'.padEnd(35)} Removes all devices found to be expired.`)20 // console.log(`${'--verbose'.padEnd(35)} Enables verbose output`)21 console.log('')22 process.exit(0)23}24// Load config file25const config = yaml.load(fs.readFileSync(path.resolve(args.config || './config/config.yml'), 'utf8')).CLEANUP_UNREGISTERED_DEVICES26const logger = new Logger(path.basename(fileURLToPath(import.meta.url)).replace(/\.js$/, ''))27logger.info('Starting...')28const axl = new AXL()29// Check if we want to delete all devices from args30let removeAllDevices = args['remove-all'] // ? true : false31// const verbose = args.verbose // ? true : false32// Assign values from config33const phonePrefixes = args['included-phone-prefixes'] ? args['included-phone-prefixes'].split(',') : config.INCLUDED_DEVICES || []34const allowedPhonePrefixes = Object.keys(phonePrefixes).map((key) => phonePrefixes[key]).flat()35const excludedDescriptions = config.EXCLUDED.DESCRIPTIONS || []36const excludedDevices = config.EXCLUDED.DEVICES || []37const excludedDN = config.EXCLUDED.DN || []38const excludedModels = config.EXCLUDED.MODELS || []39const cutoffMark = args['cutoff-mark'] || config.CUTOFF_MARK40// Query that finds every device in the call manager and returns when it was last used41// Had to use between as less than was always throwing an error42const query = `43 SELECT44 d.pkid,45 d.name,46 tm.name AS model,47 np.dnorpattern,48 d.description,49 rd.lastactive,50 rd.lastseen,51 trs.name AS status52 FROM registrationdynamic AS rd53 INNER JOIN device AS d ON d.pkid = rd.fkdevice54 INNER JOIN typemodel AS tm ON tm.enum = d.tkmodel55 INNER JOIN devicenumplanmap as dnp ON dnp.fkdevice = d.pkid56 INNER JOIN numplan np ON np.pkid = dnp.fknumplan57 LEFT JOIN typerisstatus AS trs ON trs.enum = rd.tkrisstatus58 WHERE rd.lastseen != 059 AND rd.lastseen BETWEEN 0 AND ${Math.round((Date.now() / 1000) - (cutoffMark * 24 * 60 * 60))}60 ORDER BY rd.lastseen61`62logger.debug(query)63// Execute Query64const devices = await axl.executeSQLQuery(query)65 .catch(err => {66 logger.error('Connection Error:', err.message)67 process.exit(1)68 })69logger.debug(`Found ${devices.length} devices that need to be filtered.`)70logger.debug(Object.keys(devices[0]), devices[0].lastseen)71// Remove everything except what we want72const unregisteredDevices = devices73 // Exclude devices that have never registered74 .filter((device) => device.lastseen !== '0')75 // Only include devices with allowed PREFIX76 .filter((device) => allowedPhonePrefixes.includes(device.name.slice(0, 3)))77 // Exclude devices by DESCRIPTION78 .filter((device) => !excludedDescriptions.includes(device.description))79 // Exclude devices by MODEL80 .filter((device) => !excludedModels.includes(device.model))81 // Exclude devices by DN82 .filter((device) => !excludedDN.includes(device.dnorpattern))83 // Exclude devices by NAME84 .filter((device) => !excludedDevices.includes(device.name))85 // Exclude devices by LAST_SEEN_LIMIT86 .filter((device) => ((Date.now() / 1000) - device.lastseen) > cutoffMark * 24 * 60 * 60)87// Print out a list of devices that were found88logger.info(`Devices unregistered for more than ${cutoffMark} days`)89logger.info('-'.repeat(110))90logger.info(`${'name'.padEnd(15)} | ${'model'.padEnd(25)} | ${'pattern'.padEnd(8)} | ${'description'.padEnd(40)} | ${'last'.padEnd(10)}`)91logger.info('-'.repeat(110))92for (const device of unregisteredDevices) {93 logger.info(`${device.name.padEnd(15)} | ${device.model.slice(0, 25).padEnd(25)} | ${device.dnorpattern.padEnd(8)} | ${typeof device.description === 'string' ? device.description.slice(0, 40).padEnd(40) : ''.padEnd(40)} | ${(new Date(device.lastseen * 1000)).toISOString([], {}).slice(0, 10).replace(/-/g, '.').padEnd(10)}`)94}95logger.info('-'.repeat(110))96logger.info(`Total: ${unregisteredDevices.length}`)97// Check if we found devices prompt for deletion of we found any98if (unregisteredDevices.length === 0) {99 logger.info(`Found no device that has been unregistered for more than ${cutoffMark} days.`)100 process.exit(0)101}102const removeDevices = removeAllDevices || (await prompts({103 type: 'confirm',104 name: 'removeDevices',105 message: 'Remove devices?',106 initial: false107})).removeDevices108if (removeAllDevices || removeDevices) {109 for (const device of unregisteredDevices) {110 let removeDevice = false111 if (!removeAllDevices) {112 const { answer } = await prompts({113 type: 'select',114 name: 'answer',115 message: `Remove device ${device.name}?`,116 choices: [117 { title: 'yes', value: 'yes' },118 { title: 'no', value: 'no' },119 { title: 'all', value: 'all' }120 ],121 initial: 1122 })123 removeAllDevices = answer === 'all' // ? true : false124 removeDevice = answer === 'yes'125 }126 if (removeAllDevices || removeDevice) {127 logger.backup(await axl.get('Phone', { name: device.name }))128 await axl.removePhone(device.pkid)129 logger.info(`Removed ${device.name}`)130 }131 }...
DisplaysManager.js
Source:DisplaysManager.js
...26 this.removeDevice = function () {27 this.facade.cloudyScene.removeDevice();28 }29 this.removeAllDevices = function () {30 this.facade.cloudyScene.removeAllDevices();31 }32 this.toggleDisplay = function (elementId) {33 var disp = document.getElementById(elementId);34 if (disp.style.display == "") disp.style.display = 'block';35 try{36 if (disp.style.display == 'block') { disp.style.display = 'none'; }37 else { disp.style.display = 'block'; }38 } catch(err){39 disp.style.display == 'block';40 }41 //if (disp.style.display == 'block' || disp.style.display == "") {42 // disp.style.display = 'none';43 //} else {44 // disp.style.display = 'block';...
utils.js
Source:utils.js
...34module.exports.addMultipleTestDevices = function(labels) {35 return socket.addDevices(labels);36};37module.exports.removeTestDevices = function() {38 return socket.removeAllDevices();39};40module.exports.clearDevices = function() {41 return socket.removeAllDevices();42};43module.exports.stopAll = function() {44 return socket.stopAll();45};46module.exports.hasClass = function (element, cls) {47 return element.getAttribute('class').then(function (classes) {48 return classes.split(' ').indexOf(cls) !== -1;49 });50};51module.exports.clear = function (element) {52 return element.getAttribute('value').then(function (text) {53 var backspaceSeries = '',54 textLength = text.length;55 for(var i = 0; i < textLength; i++) {...
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2wptoolkit.removeAllDevices(function(err, data) {3 if (err) {4 console.log("Error: " + err);5 } else {6 console.log("Success: " + data);7 }8});9var wptoolkit = require('wptoolkit');10wptoolkit.removeDevice('device-id', function(err, data) {11 if (err) {12 console.log("Error: " + err);13 } else {14 console.log("Success: " + data);15 }16});17var wptoolkit = require('wptoolkit');18wptoolkit.removeDevice('device-id', function(err, data) {19 if (err) {20 console.log("Error: " + err);21 } else {22 console.log("Success: " + data);23 }24});25var wptoolkit = require('wptoolkit');26wptoolkit.getDeviceStatus('device-id', function(err, data) {27 if (err) {28 console.log("Error: " + err);29 } else {30 console.log("Success: " + data);31 }32});33var wptoolkit = require('wptoolkit');34wptoolkit.getDeviceStatus('device-id', function(err, data) {35 if (err) {36 console.log("Error: " + err);37 } else {38 console.log("Success: " + data);39 }40});41var wptoolkit = require('wptoolkit');42wptoolkit.getDeviceStatus('device-id', function(err, data) {43 if (err) {44 console.log("Error: " + err);45 } else {46 console.log("Success: " + data);47 }48});
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2var wp = new wptoolkit();3wp.removeAllDevices(function(err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 }9});
Using AI Code Generation
1var wpt = require('wptoolkit');2var wptoolkit = new wpt.WPToolkit();3wptoolkit.removeAllDevices(function(err, data) {4 if (err) {5 console.log('Error: ' + err);6 } else {7 console.log(data);8 }9});10var wpt = require('wptoolkit');11var wptoolkit = new wpt.WPToolkit();12wptoolkit.removeDevice('8A1F1D7A-3B05-4F3E-9D9E-2B1F3C0E4F4B', function(err, data) {13 if (err) {14 console.log('Error: ' + err);15 } else {16 console.log(data);17 }18});19var wpt = require('wptoolkit');20var wptoolkit = new wpt.WPToolkit();21wptoolkit.removeDevice('8A1F1D7A-3B05-4F3E-9D9E-2B1F3C0E4F4B', function(err, data) {22 if (err) {23 console.log('Error: ' + err);24 } else {25 console.log(data);26 }27});28var wpt = require('wptoolkit');29var wptoolkit = new wpt.WPToolkit();30wptoolkit.getDeviceList(function(err, data) {31 if (err) {32 console.log('Error: ' + err);33 } else {34 console.log(data);35 }36});
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2wptoolkit.removeAllDevices(function(err, data) {3 if (err) {4 console.log(err);5 } else {6 console.log(data);7 }8});9[MIT](LICENSE)
Using AI Code Generation
1var wptools = require('wp-tools');2wptools.removeAllDevices(function(err, result){3 if(err){4 console.log(err);5 }else{6 console.log(result);7 }8});9var wptools = require('wp-tools');10wptools.removeDevice('device_id', function(err, result){11 if(err){12 console.log(err);13 }else{14 console.log(result);15 }16});17var wptools = require('wp-tools');18wptools.getDevice('device_id', function(err, result){19 if(err){20 console.log(err);21 }else{22 console.log(result);23 }24});25var wptools = require('wp-tools');26wptools.getDevices(function(err, result){27 if(err){28 console.log(err);29 }else{30 console.log(result);31 }32});
Using AI Code Generation
1var wptools = require("wptools");2wptools.removeAllDevices(function(err, data){3 console.log(data);4});5{6}7var wptools = require("wptools");8wptools.removeDevice("device_id", function(err, data){9 console.log(data);10});11{12}13var wptools = require("wptools");14var device = {15};16wptools.updateDevice(device, function(err, data){17 console.log(data);18});19{20}21var wptools = require("wptools");22wptools.getDevice("device_id", function(err, data){23 console.log(data);24});25{26}27var wptools = require("wptools");28wptools.getDevices(function(err, data){29 console.log(data);30});31 {
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!