Added function to download all data in a column-formatted csv

This commit is contained in:
Patrick McDonagh
2016-02-22 17:52:58 -06:00
parent dd234d6282
commit f6884d8a15

View File

@@ -197,10 +197,27 @@ exports.seriesTagValuesBetween = function(req, res){
});
};
var createCSVrow = function(header, dataRow){
var i = header.indexOf(dataRow.vanityName);
console.log(i);
var csvRow = dataRow.id.toString() + "," + dataRow.dateAdded + ",";
if (i >= 0){
for (var j = 2; j < header.length; j++){
if (j == i){
csvRow = csvRow + dataRow.val.toString()+ ",";
} else {
csvRow = csvRow + ",";
}
}
csvRow = csvRow.slice(0, -1) + "\r";
console.log(csvRow);
return csvRow;
}
};
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);
@@ -211,17 +228,24 @@ exports.allDataCSV = function(req, res){
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);
getAllTags(function(err,tags){
if (err){
console.log(err);
} else {
var csvString = "";
var da = ["id", "DateAdded"];
var tagVanityNames = tags.map(function(t){return t.vanityName;});
var h = da.concat(tagVanityNames);
console.log(h);
csvString = csvString + h.join(",") + "\r";
for (var i= 0; i < rows.length; i++){
csvString = csvString + createCSVrow(h, rows[i]);
}
res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', "attachment;filename=tagdata.csv");
res.send(csvString);
}
});
}
});
});
@@ -242,13 +266,14 @@ exports.seriesCSV = function(req, res){
res.json({status:"error", message:err, query:query});
} else {
var csvString = "";
var h = ["ID", "Value", "DateAdded"];
var da = ["id", "DateAdded"];
var tagVanityNames = tags.map(function(t){return t.vanityName;});
var h = da.concat(tagVanityNames);
console.log(h);
csvString = csvString + h.join(",") + "\r";
for (var i= 0; i < rows.length; i++){
var r = [rows[i].id, rows[i].val, rows[i].dateAdded];
csvString = csvString + r.join(",") + "\r";
csvString = csvString + createCSVrow(h, rows[i]);
}
res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', "attachment;filename=tagdata.csv");
res.send(csvString);