UNPKG

openhim-core

Version:

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

83 lines (65 loc) 2.3 kB
var Q, SDC, Task, Transaction, application, config, domain, logger, os, sdc, statsdServer; Q = require("q"); Transaction = require("../model/transactions").Transaction; Task = require("../model/tasks").Task; logger = require("winston"); config = require('../config/config'); statsdServer = config.get('statsd'); application = config.get('application'); SDC = require('statsd-client'); os = require('os'); domain = (os.hostname()) + "." + application.name + ".appMetrics"; sdc = new SDC(statsdServer); exports.updateOriginalTransaction = function(ctx, done) { return Transaction.findOne({ _id: ctx.parentID }, function(err, transaction) { transaction.childIDs.push(ctx.transactionId); return transaction.save(function(err, tx) { if (err) { logger.info('Original transaction #' + transaction._id + ' could not be updated: ' + err); } else { logger.info('Original transaction #' + tx._id + ' - Updated successfully with childID'); } return done(null, transaction); }); }); }; exports.updateTask = function(ctx, done) { return Task.findOne({ _id: ctx.taskID }, function(err, task) { task.transactions.forEach(function(tx) { if (tx.tid === ctx.parentID) { tx.rerunID = ctx.transactionId; return tx.rerunStatus = ctx.transactionStatus; } }); return task.save(function(err, task) { if (err) { logger.info('Rerun Task #' + ctx.taskID + ' could not be updated: ' + err); } else { logger.info('Rerun Task #' + ctx.taskID + ' - Updated successfully with rerun transaction details.'); } return done(null, task); }); }); }; /* * Koa middleware for updating original transaction with childID */ exports.koaMiddleware = function*(next) { var startTime, updateOriginalTransaction, updateTask; (yield next); if (statsdServer.enabled) { startTime = new Date(); } updateOriginalTransaction = Q.denodeify(exports.updateOriginalTransaction); (yield updateOriginalTransaction(this)); updateTask = Q.denodeify(exports.updateTask); (yield updateTask(this)); if (statsdServer.enabled) { return sdc.timing(domain + ".rerunUpdateTransactionMiddleware", startTime); } }; //# sourceMappingURL=rerunUpdateTransactionTask.js.map