qwik
Version:
qwik switch package with setLevel module
299 lines (205 loc) • 6.36 kB
JavaScript
var req = require("./index.js"); //global variable to use functions in this class
var lev = {};
exports.printMsg = function() {
console.log("This is my 1st module for qwik switch");
};
//==============================================================================
//method: setLevel
//make sure the user enters a number between 0 and 100
exports.setLevel = function(id, level){
const url = "http://localhost:2020/";
var at = id[0];
if(at !== "@"){
at = '@';
var newID = at + id;
var id_validate = req.validateInput(newID);
if( id_validate !== true){
if(level <= 100 && level >= 0){
//var lev = {};
lev[newID]=level;
console.log(lev);
var h;
h = http_get(url, lev, null);
console.log(h);
return lev;
}//end if level
else{
console.log("Error, please enter a number between 0 and 100 including 0 or 100");
}//end else
}//end if id_validate
}//end if check for @ symbol
else{
id_validate = req.validateInput(id);
if( id_validate !== true){
//if( level_validate !== true){
if(level <= 100 && level >= 0){
lev = {};
lev[id]=level;
console.log(lev);
h = http_get(url, lev, null);
console.log(h);
return lev;
}//end if level
else{
console.log("Error, please enter a number between 0 and 100 including 0 or 100");
}//end else
}//end if id_validate
}//end final else
};
//=================================================================================================================
//==============================================================================
//method: setLevel demo
//make sure the user enters a number between 0 and 100
exports.setLeveldemo = function(id, level){
// var http1 = require('http_get');
const url = "http://localhost:2020/";
var id_validate = req.validateInput(id);
// var level_validate = req.validateLevel(level);
if( id_validate !== true){
//if( level_validate !== true){
if(level <= 100 && level >= 0){
var lev = {};
lev[id]=level;
// lev.concat(id, '=', level);
console.log(lev);
var h;
h = http_get(url, lev, null);
console.log(h);
return lev;
}//end if level
else{
console.log("Error, please enter a number between 0 and 100 including 0 or 100");
}//end else
}//end if id_validate
};
//=================================================================================================================
//validate input function
///^[a-z]{0,10}$/
exports.validateInput =function(validate){
var i = /^[0-9a-fA-F]{07}$/;
return i.test(validate);
};
/*
exports.validateLevel =function(validate){
var i = /^[0-9]{1,3}$/;
return i.test(validate);
};
*/
//=================================================================================================================
//get level function
exports.get_level = function(){
return lev;
};
//==================================================================================================================
//http_get modified
function http_get(host, data, cb)
{
var p = "";
for(var i in data)
{
p += i + '=' + data[i];
}
var url = host + p;// + '&ep=' + new Date().getTime();
if(host.indexOf('https:') !== -1) var http = require('https');
else var http = require('http');
var req = http.get(url, function(res)
{
res.setEncoding('utf8');
var body = '';
res.on('data', function(d)
{
body += d;
});
res.on('end', function(chunk)
{
if(cb) cb(body);
});
});
req.on('error', function(e)
{
console.log("http_get error: " + e.message);
if(cb) cb(null);
});
//30 sec timeout
req.setTimeout(30000, function()
{
console.log("http_get timeout");
req.abort(); //error gets called
});
return url;
}
//==================================================================================================================
//exaple for user input app
/*
exports.userInput = function(){
var prompt = require('prompt');
var id;
var level;
var properties = [
{
name: 'id',
validator: /^[a-zA-Z\s\-]+$/,
warning: 'Username must be only letters, spaces, or dashes'
},
{
name: 'level',
hidden: false
},
];
prompt.start();
prompt.get(properties, function (err, result) {
if (err) { return onErr(err); }
console.log('Command-line input received:');
console.log(' ID: ' + result.id);
console.log(' level : ' + result.level);
});
function onErr(err) {
console.log(err);
return 1;
}
};
*///do not delete
//=============================================================================
/*
//http_get default from slade collins
exports.http_get1 = function(host, data, cb)
{
var p = "";
for(var i in data)
{
p += '&' + encodeURIComponent(i) + '=' + encodeURIComponent(data[i]);
}
var url = host + '?' + p + '&ep=' + new Date().getTime();
if(host.indexOf('https:') !== -1) var http = require('https');
else http = require('http');
//else var http = require('http');
var req = http.get(url, function(res)
{
res.setEncoding('utf8');
var body = '';
res.on('data', function(d)
{
body += d;
});
res.on('end', function(chunk)
{
if(cb) cb(body);
});
});
req.on('error', function(e)
{
console.log("http_get error: " + e.message);
if(cb) cb(null);
});
//30 sec timeout
req.setTimeout(30000, function()
{
console.log("http_get timeout");
req.abort(); //error gets called
});
process.on('uncaughtException', function (err) {
console.log(err);
});
};
*/
//=============================================================================