40 try {
41 const obj = JSON.parse(message)
42 if (obj.method) {
43 switch (obj.method) { 44 case 'shld_set_config': 45 config[obj.arguments[0]] = obj.arguments[1] 46 break 47 case 'shld_fetch_settings': 48 // skipcq: JS-0002 49 console.log('Broadcasting current settings') 50 this.send( 51 JSON.stringify({ 52 method: 'phlx_update_settings', 53 arguments: [JSON.stringify(config)], 54 }) 55 ) 56 break 57 case 'shld_fetch_stats': 58 // skipcq: JS-0002 59 console.log('Broadcasting current stats') 60 this.send( 61 JSON.stringify({ 62 method: 'phlx_update_stats', 63 arguments: [ 64 (await this.nosql.get('stats:legit_req')) || '0', //legit_req 65 (await this.nosql.get('stats:ttl_req')) || '0', //ttl_req 66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce 67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf 68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time 69 (await this.nosql.get('stats:prob_solved')) || '0', //prob_solved 70 ], 71 }) 72 ) 73 break 74 case 'shld_add_whitelist': 75 await this.nosql.setNX(`wht:${obj.arguments[0]}`, '1') 76 break 77 case 'shld_remove_whitelist': 78 await this.nosql.del(`wht:${obj.arguments[0]}`) 79 break 80 case 'shld_ban_ip': 81 await this.nosql.setNX( 82 `ban:${obj.arguments[0]}`, 83 '1', 84 true, 85 obj.arguments[1] 86 ) 87 break 88 case 'shld_update_model': 89 //TODO 90 break 91 } 92 }
93 } catch (err) {
94 // skipcq: JS-0002
Some code conventions require that all switch statements have a default case, even if the default case is empty. The idea is to always explicitly state what the default behavior should be so that it's clear that the developer didn't forget to handle the default fallback case.
switch (a) {
case 1:
/* code */
break;
}
switch (a) {
case 1:
/* code */
break;
default:
/* code */
break;
}
switch (a) {
case 1:
/* code */
break;
// no default
}
switch (a) {
case 1:
/* code */
break;
// No Default
}