2016-05-24 22:01:46 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
2019-08-14 16:27:58 -04:00
|
|
|
const json2csv = require('json-2-csv').json2csv;
|
|
|
|
|
const util = require('util');
|
2016-05-24 22:01:46 -04:00
|
|
|
|
2019-08-14 16:27:58 -04:00
|
|
|
const meta = require('../../meta');
|
|
|
|
|
const analytics = require('../../analytics');
|
|
|
|
|
const utils = require('../../utils');
|
2016-05-24 22:01:46 -04:00
|
|
|
|
2019-08-14 16:27:58 -04:00
|
|
|
const errorsController = module.exports;
|
2016-05-24 22:01:46 -04:00
|
|
|
|
2019-08-14 16:27:58 -04:00
|
|
|
errorsController.get = async function (req, res) {
|
|
|
|
|
const data = await utils.promiseParallel({
|
|
|
|
|
'not-found': meta.errors.get(true),
|
|
|
|
|
analytics: analytics.getErrorAnalytics(),
|
|
|
|
|
});
|
|
|
|
|
res.render('admin/advanced/errors', data);
|
2016-05-24 22:01:46 -04:00
|
|
|
};
|
|
|
|
|
|
2019-08-14 16:27:58 -04:00
|
|
|
const json2csvAsync = util.promisify(function (data, callback) {
|
|
|
|
|
json2csv(data, (err, output) => callback(err, output));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
errorsController.export = async function (req, res) {
|
|
|
|
|
const data = await meta.errors.get(false);
|
|
|
|
|
const csv = await json2csvAsync(data);
|
|
|
|
|
res.set('Content-Type', 'text/csv').set('Content-Disposition', 'attachment; filename="404.csv"').send(csv);
|
2016-05-24 23:04:57 -04:00
|
|
|
};
|