UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

55 lines (46 loc) 1.29 kB
var Q, authorisation, levels, logger, moment, utils; logger = require('winston'); moment = require('moment'); Q = require('q'); authorisation = require('./authorisation'); utils = require("../utils"); levels = { debug: 1, info: 2, warn: 3, error: 4 }; exports.getLogs = function*() { var options, query, results; if (!authorisation.inGroup('admin', this.authenticated)) { utils.logAndSetResponse(this, 403, "User " + this.authenticated.email + " is not an admin, API access to getLogs denied.", 'info'); return; } query = this.request.query; if (query == null) { query = {}; } if (query.level == null) { query.level = 'info'; } options = { from: query.from || moment().subtract(5, 'minutes').toDate(), until: query.until || new Date, order: 'asc', start: (parseInt(query.start)) || 0, limit: 100000 }; results = (yield Q.ninvoke(logger, 'query', options)); results = results.mongodb; if (query.level != null) { results = results.filter(function(item) { return levels[item.level] >= levels[query.level]; }); } if (query.limit != null) { results.splice(query.limit, results.length - query.limit); } this.body = results; return this.status = 200; }; //# sourceMappingURL=logs.js.map