Converts CSV Method for getting all data to new separate column method

This commit is contained in:
Patrick McDonagh
2016-07-28 13:11:18 -05:00
parent 8fe01d0a7d
commit 871bf70161

View File

@@ -60,37 +60,7 @@ module.exports = {
return res.ok(); return res.ok();
}); });
}, },
// csvSingle: function(req, res){
// var ids = req.params.id.split(",");
// var w = {'where':{'tagID': ids, 'createdAt': {">":mysqlDate(req.params.start), "<": mysqlDate(req.params.end)}}};
// Tag_val.find(w).exec(function(err, rows){
// if (err) return res.serverError(err);
// if (ids.length == 1){
// ids = ids[0];
// }
// Tag.find({'where':{'id': ids}}).exec(function(tag_err, tags_found){
// if (tag_err) return res.serverError(tag_err);
// var h = ['id', 'DateAdded'];
// var hid = ['id', 'DateAdded'];
// for (var j = 0; j < tags_found.length; j++){
// h.push(tags_found[j].name);
// hid.push(tags_found[j].id);
// }
// var csvString = "";
// csvString = csvString + h.join(',') + '\u000d';
//
// var i = 0;
// while (i < rows.length){
// csvString = csvString + createCSVrow(hid, rows[i]);
// i++;
// }
// res.set('Content-Type', 'text/csv');
// res.set('Content-Disposition', 'attachment;filename=tagdata.csv');
// res.send(csvString);
// });
// });
// },
csvSingle: function(req, res){ csvSingle: function(req, res){
var ids = req.params.id.split(","); var ids = req.params.id.split(",");
var w = {'where':{'tagID': ids, 'createdAt': {">":mysqlDate(req.params.start), "<": mysqlDate(req.params.end)}}}; var w = {'where':{'tagID': ids, 'createdAt': {">":mysqlDate(req.params.start), "<": mysqlDate(req.params.end)}}};
@@ -143,23 +113,42 @@ module.exports = {
if (err) return res.serverError(err); if (err) return res.serverError(err);
Tag.find().exec(function(tag_err, tags_found){ Tag.find().exec(function(tag_err, tags_found){
if (tag_err) return res.serverError(tag_err); if (tag_err) return res.serverError(tag_err);
var h = ['id', 'DateAdded'];
var hid = ['id', 'DateAdded'];
for (var j = 0; j < tags_found.length; j++){
h.push(tags_found[j].name);
hid.push(tags_found[j].id);
}
var csvString = "";
csvString = csvString + h.join(',') + '\u000d';
var i = 0; var tag_val_obj = {};
while (i < rows.length){ var tag_ids = tags_found.map(function(t){
csvString = csvString + createCSVrow(hid, rows[i]); tag_val_obj[parseInt(t.id)] = {name: t.name, vals: []};
i++; return parseInt(t.id);
});
rows.map(function(r){
if(tag_ids.indexOf(r.tagID) > -1){
tag_val_obj[r.tagID].vals.push(r.createdAt + "," + r.val.toString() + ",,");
}
});
var lengths = [];
for (var tid = 0; tid < tag_ids.length; tid++){
lengths.push(tag_val_obj[tag_ids[tid]].vals.length);
} }
var headerString = "";
for (var t_h = 0; t_h < tags_found.length; t_h ++){
headerString += "datetime," + tags_found[t_h].name +",,";
}
headerString = headerString.slice(0,-2) + '\u000d';
var maxLength = Math.max.apply(null, lengths);
var csvString = "";
for (var x = 0; x < maxLength; x++){
for(var t = 0; t < tag_ids.length; t++){
if (x < lengths[t]){
csvString += tag_val_obj[tag_ids[t]].vals[x];
}
}
csvString = csvString.slice(0,-2) + '\u000d';
}
res.set('Content-Type', 'text/csv'); res.set('Content-Type', 'text/csv');
res.set('Content-Disposition', 'attachment;filename=tagdata.csv'); res.set('Content-Disposition', 'attachment;filename=tagdata.csv');
res.send(csvString); res.send(headerString + csvString);
}); });
}); });
} }