mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 05:37:22 +01:00
refactor: Remove express-csv dependency
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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;
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user