UNPKG

off-sqs-debearloper

Version:

Helper app that manages SQS and RabbitMQ transactions

76 lines (56 loc) 2.02 kB
// OFF-SQS //Helper app that manages SQS and RabbitMQ transactions var config = require('./config'), getMessages = require('./receiver'), listQueues = require('./listQueues'), parseMessage = require('./parseMessage'), sendMessages = require('./sender'), when = require('when'); var offSqs = function(){ this.awsConfigFile = undefined; this.MaxNumberOfMessages = 10; this.WaitTimeSeconds = 20; this.listQueues = listQueues.bind(this); this.getMessages = getMessages.bind(this); this.config = config; }; offSqs.prototype.configure = function(opts){ this.config.awsConfigFile = opts.awsConfigFile || this.awsConfigFile; this.MaxNumberOfMessages = opts.MaxNumberOfMessages || 10; this.WaitTimeSeconds = opts.WaitTimeSeconds || 20; }; offSqs.prototype.awsReviewerFile = function(){ if(JSON.stringify(this.config.awsConfigFile) == undefined && config.env.development == false){ console.log("Config error, for more information: https://github.com/emilioriosvz/off-sqs-debearloper "); throw new Error('You need to put your own AWS configuration file'); }; }; offSqs.prototype.sender = function(queueName, data){ this.awsReviewerFile(); this.listQueues(queueName).then(function(queueUrl){ sendMessages(data, queueUrl); }); }; offSqs.prototype.receiver = function(queueName, callback){ this.awsReviewerFile(); this.callback = callback; var deferred = when.defer(), self = this; this.listQueues(queueName).then(function(queueUrl){ self.queueUrl = queueUrl; deferred.resolve({ receiver: self.getMessages.call(this) }); }); }; offSqs.prototype.getQueueUrl = function(queueName){ var deferred = when.defer(); this.listQueues(queueName).then(function(queueUrl){ deferred.resolve(queueUrl); }); return deferred.promise; }; offSqs.prototype.parseMessage = function(data){ return parseMessage(data); }; module.exports = offSqs;