refactor: Remove express-csv dependency

This commit is contained in:
Blade Barringer
2016-03-26 21:43:18 -05:00
parent cb5a79b1bf
commit f4b43f55f0
4 changed files with 46 additions and 16 deletions

View File

@@ -21,9 +21,9 @@
"connect-ratelimit": "0.0.7", "connect-ratelimit": "0.0.7",
"cookie-session": "^1.2.0", "cookie-session": "^1.2.0",
"coupon-code": "~0.3.0", "coupon-code": "~0.3.0",
"csv-stringify": "^1.0.2",
"domain-middleware": "~0.1.0", "domain-middleware": "~0.1.0",
"express": "^4.13.4", "express": "^4.13.4",
"express-csv": "~0.6.0",
"firebase": "^2.2.9", "firebase": "^2.2.9",
"firebase-token-generator": "^2.0.0", "firebase-token-generator": "^2.0.0",
"glob": "^4.3.5", "glob": "^4.3.5",

View File

@@ -8,7 +8,7 @@ var User = require('./../../models/user').model;
var Group = require('./../../models/group').model; var Group = require('./../../models/group').model;
var Challenge = require('./../../models/challenge').model; var Challenge = require('./../../models/challenge').model;
var logging = require('./../../libs/logging'); var logging = require('./../../libs/logging');
var csv = require('express-csv'); var csvStringify = require('csv-stringify');
var utils = require('../../libs/utils'); var utils = require('../../libs/utils');
var api = module.exports; var api = module.exports;
var pushNotify = require('./../pushNotifications'); var pushNotify = require('./../pushNotifications');
@@ -112,9 +112,17 @@ api.csv = function(req, res, next) {
}) })
output.push(uData); output.push(uData);
}); });
res.header('Content-disposition', 'attachment; filename='+cid+'.csv');
res.csv(output); res.set({
challenge = cid = null; 'Content-Type': 'text/csv',
'Content-disposition': `attachment; filename=${cid}.csv`,
});
csvStringify(output, (err, csv) => {
if (err) return next(err);
res.status(200).send(csv);
challenge = cid = null;
});
}) })
} }

View File

@@ -1,7 +1,7 @@
var _ = require('lodash'); var _ = require('lodash');
var Coupon = require('./../../models/coupon').model; var Coupon = require('./../../models/coupon').model;
var api = module.exports; var api = module.exports;
var csv = require('express-csv'); var csvStringify = require('csv-stringify');
var async = require('async'); var async = require('async');
api.ensureAdmin = function(req, res, next) { api.ensureAdmin = function(req, res, next) {
@@ -21,10 +21,18 @@ api.getCoupons = function(req,res,next) {
if (req.query.limit) options.limit = req.query.limit; if (req.query.limit) options.limit = req.query.limit;
if (req.query.skip) options.skip = req.query.skip; if (req.query.skip) options.skip = req.query.skip;
Coupon.find({},{}, options, function(err,coupons){ Coupon.find({},{}, options, function(err,coupons){
//res.header('Content-disposition', 'attachment; filename=coupons.csv'); let output = [['code']].concat(_.map(coupons, function(c){
res.csv([['code']].concat(_.map(coupons, function(c){
return [c._id]; return [c._id];
}))); }))
res.set({
'Content-Type': 'text/csv',
'Content-disposition': `attachment; filename=habitica-coupons.csv`,
});
csvStringify(output, (err, csv) => {
if (err) return next(err);
res.status(200).send(csv);
});
}); });
} }

View File

@@ -1,9 +1,8 @@
var _ = require('lodash'); var _ = require('lodash');
var csv = require('express-csv');
var express = require('express'); var express = require('express');
var csvStringify = require('csv-stringify');
var nconf = require('nconf'); var nconf = require('nconf');
var moment = require('moment'); var moment = require('moment');
var dataexport = module.exports;
var js2xmlparser = require("js2xmlparser"); var js2xmlparser = require("js2xmlparser");
var pd = require('pretty-data').pd; var pd = require('pretty-data').pd;
var User = require('../models/user').model; var User = require('../models/user').model;
@@ -22,6 +21,8 @@ var request = require('request');
------------------------------------------------------------------------ ------------------------------------------------------------------------
*/ */
var dataexport = module.exports;
dataexport.history = function(req, res) { dataexport.history = function(req, res) {
var user = res.locals.user; var user = res.locals.user;
var output = [ var output = [
@@ -29,13 +30,26 @@ dataexport.history = function(req, res) {
]; ];
_.each(user.tasks, function(task) { _.each(user.tasks, function(task) {
_.each(task.history, function(history) { _.each(task.history, function(history) {
output.push( output.push([
[task.text, task.id, task.type, moment(history.date).format("MM-DD-YYYY HH:mm:ss"), history.value] task.text,
); task.id,
task.type,
moment(history.date).format("MM-DD-YYYY HH:mm:ss"),
history.value
]);
}); });
}); });
return res.csv(output);
} res.set({
'Content-Type': 'text/csv',
'Content-disposition': `attachment; filename=habitica-tasks-history.csv`,
});
csvStringify(output, (err, csv) => {
if (err) return next(err);
res.status(200).send(csv);
});
};
var userdata = function(user) { var userdata = function(user) {
if(user.auth && user.auth.local) { if(user.auth && user.auth.local) {