UNPKG

airship-server

Version:

Airship is a framework for Node.JS & TypeScript that helps you to write big, scalable and maintainable API servers.

43 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const BotOutputMessage_1 = require("../../../hhEvents/domain/entity/notifications/message/BotOutputMessage"); const amqp = require('amqplib/callback_api'); const env = process.env['NODE_ENV'] || 'development'; const QUEUE = { 'production': 'hh_events_output_messages', 'test': 'hh_events_output_messages_testing', 'development': 'hh_events_output_messages' }; class RabbitOutputMessagesProvider { constructor(logger, rabbitLink) { this._logger = logger; this._rabbitLink = rabbitLink; } getMessages(callback) { this._logger.log('Connecting to Rabbit'); amqp.connect(this._rabbitLink, (err, conn) => { if (err) { this._logger.error('Error connecting to Rabbit', err); process.exit(); } conn.createChannel((err, ch) => { if (err) { this._logger.error('Error connecting to Rabbit', err); process.exit(); } //var q = 'hh_events_output_messages' var q = QUEUE[env]; ch.assertQueue(q, { durable: false }); ch.consume(q, msg => { let message = BotOutputMessage_1.default.deserialize(JSON.parse(msg.content.toString('utf8'))); this._logger.log('Got message to send ', message); callback(message, () => { ch.ack(msg); }); }, { noAck: false }); }); }); } } exports.default = RabbitOutputMessagesProvider; //# sourceMappingURL=RabbitOutputMessagesProvider.js.map