UNPKG

openhim-core

Version:

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

46 lines (36 loc) 1.12 kB
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 = -> # Only admins can view server logs if not 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 not query? query = {} # default to info level logs if not query.level? 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 # limit: 0 doesn't work :/ results = yield Q.ninvoke logger, 'query', options results = results.mongodb if query.level? results = results.filter (item) -> return levels[item.level] >= levels[query.level] if query.limit? results.splice query.limit, results.length-query.limit this.body = results this.status = 200