diff --git a/src/routes/eventlog.js b/src/routes/eventlog.js index e4e68a134..38c6957d6 100644 --- a/src/routes/eventlog.js +++ b/src/routes/eventlog.js @@ -1,14 +1,25 @@ 'use strict'; exports = module.exports = { - get: get + get: get, + list: list }; var eventlog = require('../eventlog.js'), + EventLogError = eventlog.EventLogError, HttpError = require('connect-lastmile').HttpError, HttpSuccess = require('connect-lastmile').HttpSuccess; function get(req, res, next) { + eventlog.get(req.params.eventId, function (error, result) { + if (error && error.reason === EventLogError.NOT_FOUND) return next(new HttpError(404, 'no such eventlog')); + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, { event: result })); + }); +} + +function list(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')); diff --git a/src/server.js b/src/server.js index c4b812717..e7711fd2d 100644 --- a/src/server.js +++ b/src/server.js @@ -132,7 +132,8 @@ function initializeExpressSync() { router.get ('/api/v1/cloudron/disks', cloudronScope, routes.cloudron.getDisks); router.get ('/api/v1/cloudron/logs/:unit', cloudronScope, routes.cloudron.getLogs); router.get ('/api/v1/cloudron/logstream/:unit', cloudronScope, routes.cloudron.getLogStream); - router.get ('/api/v1/cloudron/eventlog', cloudronScope, routes.eventlog.get); + router.get ('/api/v1/cloudron/eventlog', cloudronScope, routes.eventlog.list); + router.get ('/api/v1/cloudron/eventlog/:eventId', cloudronScope, routes.eventlog.get); // tasks router.get ('/api/v1/tasks', settingsScope, routes.tasks.list);