From 1fe5076f63e0d3b291c4b9a2295220713f982f91 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 5 Feb 2016 19:41:22 +0100 Subject: Move the creation of requests in lib instead of model for poolrequests --- lib/poolRequests.js | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'lib/poolRequests.js') diff --git a/lib/poolRequests.js b/lib/poolRequests.js index ccc3489ab..5b7d5489d 100644 --- a/lib/poolRequests.js +++ b/lib/poolRequests.js @@ -15,10 +15,47 @@ var poolRequests = { activate: activate, + addRequest: addRequest, deactivate: deactivate, forceSend: forceSend } + function activate () { + logger.info('Pool requests activated.') + timer = setInterval(makePoolRequests, constants.INTERVAL) + } + + function addRequest (id, type, request) { + logger.debug('Add request to the pool requests.', { id: id, type: type, request: request }) + + PoolRequests.findById(id, function (err, entity) { + if (err) { + logger.error('Cannot find one pool request.', { error: err }) + return // Abort + } + + if (entity) { + if (entity.type === type) { + logger.error('Cannot insert two same requests.') + return // Abort + } + + // Remove the request of the other type + PoolRequests.removeById(id, function (err) { + if (err) { + logger.error('Cannot remove a pool request.', { error: err }) + return // Abort + } + }) + } else { + PoolRequests.create(id, type, request, function (err) { + logger.error('Cannot create a pool request.', { error: err }) + return // Abort + }) + } + }) + } + function deactivate () { logger.info('Pool requests deactivated.') clearInterval(timer) @@ -29,11 +66,6 @@ makePoolRequests() } - function activate () { - logger.info('Pool requests activated.') - timer = setInterval(makePoolRequests, constants.INTERVAL) - } - // --------------------------------------------------------------------------- module.exports = poolRequests -- cgit v1.2.3