Finished ability to download all CSV files

This commit is contained in:
Patrick McDonagh
2016-02-11 15:53:25 -06:00
parent 4e77d955ee
commit ec4cdf7f31
2 changed files with 31 additions and 0 deletions

View File

@@ -73,6 +73,7 @@ app.get('/json/tag', fns.getAllTags);
app.get('/json/val/:tag', fns.latestValueSingleTag); // Gets the latest value of a single tag
app.get('/json/series/:tag/:hours', fns.seriesTagValues); // Gets all the values of a tag for the last X hours
app.get('/json/valBetween/:tag/:startDatetime/:endDatetime', fns.seriesTagValuesBetween); // Gets the values of a tag between the start time and end time
app.get('/json/CSV/all', fns.allDataCSV); // Gets a CSV of all values stored
app.get('/json/CSV/:tag/:startDatetime/:endDatetime', fns.seriesCSV); // Gets a CSV of the values of a tag between the start time and end time
app.get('/json/CSV/:tag/:hours', fns.seriesCSV); // Gets a CSV of the values of a tag for the last x hours
app.get('/json/all', fns.latestValueAllTags); // Gets the latest values of all tags in the scan list

View File

@@ -177,6 +177,36 @@ exports.seriesTagValuesBetween = function(req, res){
});
};
exports.allDataCSV = function(req, res){
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(dbFile);
db.serialize(function(){
var query = "SELECT v.id, t.vanityName, v.val, v.dateAdded FROM tags t JOIN vals v ON t.id = v.tagID";
var prepQuery = db.prepare(query);
prepQuery.all( function(err, rows){
prepQuery.finalize();
db.close();
if (err){
console.log(err);
res.json({status:"error", message:err, query:query});
} else {
var csvString = "";
var h = ["ID", "Tag Name", "Value", "DateAdded"];
csvString = csvString + h.join(",") + "\r";
for (var i= 0; i < rows.length; i++){
var r = [rows[i].id, rows[i].vanityName, rows[i].val, rows[i].dateAdded];
csvString = csvString + r.join(",") + "\r";
}
res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', "attachment;filename=tagdata.csv");
res.send(csvString);
}
});
});
};
exports.seriesCSV = function(req, res){
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(dbFile);