mirror of
https://github.com/pa11y/pa11y-dashboard.git
synced 2025-09-24 22:31:15 +00:00
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var _ = require('underscore');
|
|
var presentTask = require('../../view/presenter/task');
|
|
var presentResult = require('../../view/presenter/result');
|
|
|
|
module.exports = route;
|
|
|
|
// Route definition
|
|
function route (app) {
|
|
|
|
app.express.get('/:id', function (req, res, next) {
|
|
app.webservice.task(req.params.id).get({}, function (err, task) {
|
|
if (err) {
|
|
return next();
|
|
}
|
|
app.webservice.task(req.params.id).results({full: true}, function (err, results) {
|
|
if (err) {
|
|
return next(err);
|
|
}
|
|
results.forEach(function (result) {
|
|
var grouped = _.groupBy(result.results, 'code');
|
|
result.messages = _.keys(grouped).map(function (group) {
|
|
grouped[group][0].count = grouped[group].length;
|
|
return grouped[group][0];
|
|
});
|
|
});
|
|
res.render('task', {
|
|
task: presentTask(task),
|
|
results: results.map(presentResult),
|
|
lastResult: presentResult(results[0]) || null,
|
|
added: (typeof req.query.added !== 'undefined')
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
app.express.get('/:id.json', function (req, res, next) {
|
|
app.webservice.task(req.params.id).get({}, function (err, task) {
|
|
if (err) {
|
|
return next();
|
|
}
|
|
app.webservice.task(req.params.id).results({}, function (err, results) {
|
|
if (err) {
|
|
return next(err);
|
|
}
|
|
task.results = results;
|
|
res.send(task);
|
|
});
|
|
});
|
|
});
|
|
|
|
}
|