'use strict';
const amqp = require('amqplib');
const ReceiveEndpoint = require('./receive-endpoint');
const PublishEndpoint = require('./publish-endpoint');
module.exports = class Bus {
constructor(url) {
this.url = url;
}
receiveEndpoint(name) {
return new Promise((resolve, reject) => {
amqp.connect(this.url)
.then(conn => {
let endpoint = new ReceiveEndpoint(conn, name);
endpoint.bind().then(resolve, reject);
}, reject);
});
}
publishEndpoint() {
return new Promise((resolve, reject) => {
amqp.connect(this.url)
.then(conn => {
let endpoint = new PublishEndpoint(conn);
resolve(endpoint);
}, reject);
});
}
};