openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
39 lines (31 loc) • 1.07 kB
JavaScript
var Mediator, Q, moment, server, utils;
utils = require('../utils');
server = require('../server');
Mediator = require('../model/mediators').Mediator;
moment = require('moment');
Q = require('q');
exports.getHeartbeat = function*() {
var e, error, i, len, mediator, mediators, result, uptime;
try {
uptime = Q.denodeify(server.getUptime);
result = (yield uptime);
mediators = (yield Mediator.find().exec());
for (i = 0, len = mediators.length; i < len; i++) {
mediator = mediators[i];
if (!result.mediators) {
result.mediators = {};
}
if ((mediator._lastHeartbeat != null) && (mediator._uptime != null) && moment().diff(mediator._lastHeartbeat, 'seconds') <= 60) {
result.mediators[mediator.urn] = mediator._uptime;
} else {
result.mediators[mediator.urn] = null;
}
}
result.now = Date.now();
return this.body = result;
} catch (error) {
e = error;
return utils.logAndSetResponse(this, 500, "Error: " + e, 'error');
}
};
//# sourceMappingURL=heartbeat.js.map