Master has POST endpoint for flows data

#35 still not sure how to do the graphs on clientside though
This commit is contained in:
Danielv123 committed 2017-03-10 09:27:36 +01:00
1 parent dc103d1bed
commit dcc17e2fa8
2 files changed
+43 -18

No files matched your search

+19 -17
View File
@@ -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)
})
}
})
+24 -1
View File
@@ -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));
}