forked from external-repos/pa11y-dashboard
43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
var moment = require('moment');
|
|
|
|
module.exports = route;
|
|
|
|
// Route definition
|
|
function route (app) {
|
|
|
|
app.express.get('/:id/:rid.csv', function (req, res, next) {
|
|
app.webservice.task(req.params.id).get({}, function (err, task) {
|
|
if (err) {
|
|
return next();
|
|
}
|
|
app.webservice
|
|
.task(req.params.id)
|
|
.result(req.params.rid)
|
|
.get({full: true}, function (err, result) {
|
|
if (err) {
|
|
return next();
|
|
}
|
|
var rows = ['"code", "message", "type"'];
|
|
result.results.forEach(function (msg) {
|
|
rows.push([
|
|
JSON.stringify(msg.code),
|
|
JSON.stringify(msg.message),
|
|
JSON.stringify(msg.type)
|
|
].join(', '));
|
|
});
|
|
res.attachment([
|
|
'pa11y--',
|
|
task.url.replace(/^https?:\/\//i, '').replace(/\/$/, '').replace(/[^a-z0-9\.\-\_]+/gi, '-') + '--',
|
|
task.standard.toLowerCase() + '--',
|
|
moment(result.date).format('YYYY-MM-DD'),
|
|
'.csv'
|
|
].join(''));
|
|
res.send(rows.join('\n'));
|
|
});
|
|
});
|
|
});
|
|
|
|
}
|