diff --git a/master.js b/master.js index 21abe08b..e04e47c6 100644 --- a/master.js +++ b/master.js @@ -202,18 +202,25 @@ app.get("/inventory", function(req, res) { // {timestamp: Date, slaveID: string, data: {"item":number}} app.post("/logStats", function(req,res) { if(typeof req.body == "object" && req.body.slaveID && req.body.timestamp && req.body.data) { - db.flows.insert({ - slaveID: req.body.slaveID, - timestamp: req.body.timestamp, - data: req.body.data, - }); - console.log("inserted: " + req.body.slaveID + " | " + req.body.timestamp) + if(Number(req.body.timestamp) != NaN){ + req.body.timestamp = Number(req.body.timestamp); + db.flows.insert({ + slaveID: req.body.slaveID, + timestamp: req.body.timestamp, + data: req.body.data, + }); + console.log("inserted: " + req.body.slaveID + " | " + req.body.timestamp) + } else { + console.log("error invalid timestamp " + req.body.timestamp); + res.send(failure) + } } else { res.send("failure") } }) // {slaveID: string, fromTime: Date, toTime, Date} app.post("/getStats", function(req,res) { + console.log(req.body) if(typeof req.body == "object" && req.body.slaveID) { // if not specified, get stats for last 24 hours if(!req.body.fromTime) { @@ -222,19 +229,14 @@ app.post("/getStats", function(req,res) { if(!req.body.toTime) { req.body.toTime = Date.now(); } + console.log("Looking... " + JSON.stringify(req.body)) db.flows.find({ - $and: [ - { - slaveID: req.body.slaveID, - }, { - timestamp: { - $gte: req.body.toTime, - $lt: req.body.fromTime, - } - } - ] + slaveID: req.body.slaveID, }, function(err, docs) { - + let entries = docs.filter(function (el) { + return el.timestamp <= req.body.toTime && el.timestamp >= req.body.fromTime; + }); + console.log(entries) }) } }) diff --git a/static/slaveDisplay.js b/static/slaveDisplay.js index 066ee2de..aed04388 100644 --- a/static/slaveDisplay.js +++ b/static/slaveDisplay.js @@ -1,3 +1,5 @@ + +// get all slaves recently connected to master // ask master for slaves setInterval(function() { var xmlhttp = new XMLHttpRequest(); @@ -25,4 +27,25 @@ setInterval(function() { xmlhttp.send(); }, 500) -// get all slaves recently connected to master +function makeGraph(slaveID, selector) { + post("http://localhost:8080/getStats", {slaveID: slaveID}, function(data){ + console.log(data); + }) +} + +// production info +// string, object, function(object) +function post(url, data, callback) { + console.log("POST " + url + JSON.stringify(data)) + var xhr = new XMLHttpRequest(); + xhr.open("POST", url, true); + xhr.setRequestHeader("Content-type", "application/json"); + xhr.onreadystatechange = function () { + console.log(xhr.readyState + "WOW") + if (xhr.readyState == 4 && xhr.status == 200) { + var json = JSON.parse(xhr.responseText); + callback(json); + } + } + xhr.send(JSON.stringify(data)); +} \ No newline at end of file