Converts CSV Method for getting all data to new separate column method
This commit is contained in:
@@ -60,37 +60,7 @@ module.exports = {
|
||||
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){
|
||||
var ids = req.params.id.split(",");
|
||||
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);
|
||||
Tag.find().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++;
|
||||
var tag_val_obj = {};
|
||||
var tag_ids = tags_found.map(function(t){
|
||||
tag_val_obj[parseInt(t.id)] = {name: t.name, vals: []};
|
||||
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-Disposition', 'attachment;filename=tagdata.csv');
|
||||
res.send(csvString);
|
||||
res.send(headerString + csvString);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user