qwik
Version:
qwik switch package with setLevel module
163 lines (108 loc) • 3.51 kB
JavaScript
var req = require("./qwik.js"); //global variable to use functions in this class
var lev = {};
//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
};
//=================================================================================================================
//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(id){
const url = "http://localhost:2020/";
console.log("get level");
lev = {};
lev[id];
console.log(lev);
var h = http_get(url, lev, null);
console.log(h);
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;
}
//=================================================================================================================