openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
55 lines (46 loc) • 1.29 kB
JavaScript
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