diff --git a/src/routes/eventlog.js b/src/routes/eventlog.js new file mode 100644 index 000000000..219106a31 --- /dev/null +++ b/src/routes/eventlog.js @@ -0,0 +1,23 @@ +'use strict'; + +exports = module.exports = { + get: get +}; + +var eventlog = require('../eventlog.js'), + HttpError = require('connect-lastmile').HttpError, + HttpSuccess = require('connect-lastmile').HttpSuccess; + +function get(req, res, next) { + var page = typeof req.query.page !== 'undefined' ? parseInt(req.query.page) : 1; + if (!page || page < 0) return next(new HttpError(400, 'page query param has to be a postive number')); + + var perPage = typeof req.query.per_page !== 'undefined'? parseInt(req.query.per_page) : 25; + if (!perPage || perPage < 0) return next(new HttpError(400, 'per_page query param has to be a postive number')); + + eventlog.getAllPaged(page, perPage, function (error, result) { + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, { eventlog: result })); + }); +} diff --git a/src/routes/index.js b/src/routes/index.js index 6c3118e81..d9cbf8074 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -6,6 +6,7 @@ exports = module.exports = { clients: require('./clients.js'), cloudron: require('./cloudron.js'), developer: require('./developer.js'), + eventlog: require('./eventlog.js'), graphs: require('./graphs.js'), groups: require('./groups.js'), oauth2: require('./oauth2.js'), diff --git a/src/server.js b/src/server.js index 577f8e27f..853fdad03 100644 --- a/src/server.js +++ b/src/server.js @@ -176,6 +176,9 @@ function initializeExpressSync() { router.post('/api/v1/settings/certificate', settingsScope, routes.settings.setCertificate); router.post('/api/v1/settings/admin_certificate', settingsScope, routes.settings.setAdminCertificate); + // eventlog route + router.get('/api/v1/eventlog', settingsScope, routes.eventlog.get); + // backup routes router.get ('/api/v1/backups', settingsScope, routes.backups.get); router.post('/api/v1/backups', settingsScope, routes.backups.create);