Shell for UI pages, some placeholder dashboard stats

This commit is contained in:
Jamie Curnow
2018-06-26 11:56:10 +10:00
parent 493bb77169
commit c69b174771
23 changed files with 328 additions and 24 deletions

View File

@ -0,0 +1,25 @@
'use strict';
const _ = require('lodash');
const error = require('../lib/error');
const internalReport = {
/**
* @param {Access} access
* @return {Promise}
*/
getHostsReport: access => {
return access.can('reports:hosts', 1)
.then(() => {
return {
proxy: 12,
redirection: 2,
stream: 1,
'404': 0
};
});
}
};
module.exports = internalReport;

View File

@ -0,0 +1,7 @@
{
"anyOf": [
{
"$ref": "roles#/definitions/user"
}
]
}

View File

@ -2,6 +2,7 @@
const express = require('express');
const pjson = require('../../../../package.json');
const error = require('../../lib/error');
let router = express.Router({
caseSensitive: true,
@ -28,5 +29,16 @@ router.get('/', (req, res/*, next*/) => {
router.use('/tokens', require('./tokens'));
router.use('/users', require('./users'));
router.use('/reports', require('./reports'));
/**
* API 404 for all other routes
*
* ALL /api/*
*/
router.all(/(.+)/, function (req, res, next) {
req.params.page = req.params['0'];
next(new error.ItemNotFoundError(req.params.page));
});
module.exports = router;

View File

@ -0,0 +1,31 @@
'use strict';
const express = require('express');
const jwtdecode = require('../../lib/express/jwt-decode');
const internalReport = require('../../internal/report');
let router = express.Router({
caseSensitive: true,
strict: true,
mergeParams: true
});
router
.route('/hosts')
.options((req, res) => {
res.sendStatus(204);
})
/**
* GET /reports/hosts
*/
.get(jwtdecode(), (req, res, next) => {
internalReport.getHostsReport(res.locals.access)
.then(data => {
res.status(200)
.send(data);
})
.catch(next);
});
module.exports = router;