2016-05-24 22:01:46 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
2016-09-16 00:34:51 +03:00
|
|
|
var async = require('async');
|
|
|
|
|
var json2csv = require('json-2-csv').json2csv;
|
2016-05-24 22:01:46 -04:00
|
|
|
|
2016-09-16 00:34:51 +03:00
|
|
|
var meta = require('../../meta');
|
|
|
|
|
var analytics = require('../../analytics');
|
2016-05-24 22:01:46 -04:00
|
|
|
|
|
|
|
|
var errorsController = {};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
errorsController.get = function (req, res, next) {
|
2016-05-24 22:01:46 -04:00
|
|
|
async.parallel({
|
2016-05-24 23:04:57 -04:00
|
|
|
'not-found': async.apply(meta.errors.get, true),
|
2017-02-17 19:31:21 -07:00
|
|
|
analytics: async.apply(analytics.getErrorAnalytics),
|
2016-10-13 11:43:39 +02:00
|
|
|
}, function (err, data) {
|
2016-08-16 19:46:59 +02:00
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-24 22:01:46 -04:00
|
|
|
res.render('admin/advanced/errors', data);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2016-10-13 11:43:39 +02:00
|
|
|
errorsController.export = function (req, res, next) {
|
2016-05-24 23:04:57 -04:00
|
|
|
async.waterfall([
|
|
|
|
|
async.apply(meta.errors.get, false),
|
2017-02-17 19:31:21 -07:00
|
|
|
async.apply(json2csv),
|
2016-10-13 11:43:39 +02:00
|
|
|
], function (err, csv) {
|
2016-08-16 19:46:59 +02:00
|
|
|
if (err) {
|
|
|
|
|
return next(err);
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-24 23:04:57 -04:00
|
|
|
res.set('Content-Type', 'text/csv').set('Content-Disposition', 'attachment; filename="404.csv"').send(csv);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2016-05-24 22:01:46 -04:00
|
|
|
|
2017-02-18 02:30:48 -07:00
|
|
|
module.exports = errorsController;
|