UNPKG

openhim-core

Version:

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

28 lines (22 loc) 809 B
utils = require '../utils' server = require '../server' Mediator = require('../model/mediators').Mediator moment = require 'moment' Q = require 'q' exports.getHeartbeat = -> try uptime = Q.denodeify( server.getUptime ) result = yield uptime mediators = yield Mediator.find().exec() for mediator in mediators if not result.mediators then result.mediators = {} if mediator._lastHeartbeat? and mediator._uptime? and # have we received a heartbeat within the last minute? moment().diff(mediator._lastHeartbeat, 'seconds') <= 60 result.mediators[mediator.urn] = mediator._uptime else result.mediators[mediator.urn] = null result.now = Date.now() this.body = result catch e utils.logAndSetResponse this, 500, "Error: #{e}", 'error'