Skip to content

Commit

Permalink
Revert "notification API design refactor"
Browse files Browse the repository at this point in the history
  • Loading branch information
yyscamper committed Aug 17, 2016
1 parent 61e8743 commit 87bffd3
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 46 deletions.
37 changes: 12 additions & 25 deletions lib/protocol/events.js
Expand Up @@ -144,46 +144,33 @@ function eventsProtocolFactory (
);
};

EventsProtocol.prototype.publishNodeNotification = function (nodeId, data) {
EventsProtocol.prototype.publishTaskNotification = function (taskId, data) {
// assert.uuid(taskId);
if(! validator.isUUID(taskId)) {
throw new Error.BadRequestError("Invalid taskId, uuid expected");
}
var _data = data || '';
if(typeof _data !== 'string' && typeof _data !== 'object') {
throw new Error.BadRequestError("Bad Notification Data");
}

return messenger.publish(
Constants.Protocol.Exchanges.Events.Name,
'notification' + '.' + nodeId,
data
'task.notification' + '.' + taskId,
{ taskId: taskId, data: _data }
);
};

EventsProtocol.prototype.subscribeNodeNotification = function (nodeId, callback) {
EventsProtocol.prototype.subscribeTaskNotification = function (taskId, callback) {
assert.func(callback);

return messenger.subscribe(
Constants.Protocol.Exchanges.Events.Name,
'notification' + '.' + nodeId,
'task.notification' + '.' + taskId,
callback
);
};

EventsProtocol.prototype.publishBroadcastNotification = function (data) {
var _data = data || '';

return messenger.publish(
Constants.Protocol.Exchanges.Events.Name,
'notification',
data
);
};
EventsProtocol.prototype.subscribeBroadcastNotification = function (callback) {
assert.func(callback);

return messenger.subscribe(
Constants.Protocol.Exchanges.Events.Name,
'notification',
callback
);
};


EventsProtocol.prototype.publishGraphStarted = function (graphid, data) {
assert.uuid(graphid);

Expand Down
50 changes: 29 additions & 21 deletions spec/lib/protocol/events-spec.js
Expand Up @@ -155,48 +155,56 @@ describe("Event protocol subscribers", function () {
});
});

describe("publish/subscribe Notification", function () {
it("should publish and subscribe to NodeNotification messages", function () {
var nodeId = '57a86b5c36ec578876878294',
data = {
nodeId: nodeId,
data: 'test data'
};
describe("publish/subscribe TaskNotification", function () {
it("should publish and subscribe to TaskNotification messages", function () {
var uuid = helper.injector.get('uuid'),
taskId = uuid.v4(),
data = 'test';
messenger.subscribe = sinon.spy(function(a,b,callback) {
callback(data,testMessage);
return Promise.resolve(testSubscription);
});
messenger.publish.resolves();

return events.subscribeNodeNotification(nodeId, function (_data) {
return events.subscribeTaskNotification(taskId, function (_data) {
expect(_data).to.deep.equal(data);
}).then(function (subscription) {
expect(subscription).to.be.ok;
return events.publishNodeNotification(
nodeId,
return events.publishTaskNotification(
taskId,
data
);
});
});

it("should publish and subscribe to BroadcastNotification messages", function () {
var data = {
data: 'test data'
};
it("should throw errors with invalid taskId", function () {
var uuid = helper.injector.get('uuid'),
taskId = uuid.v4(),
data = 'test';
messenger.subscribe = sinon.spy(function(a,b,callback) {
callback(data,testMessage);
return Promise.resolve(testSubscription);
});
messenger.publish.resolves();

return events.subscribeBroadcastNotification(function (_data) {
expect(_data).to.deep.equal(data);
}).then(function (subscription) {
expect(subscription).to.be.ok;
return events.publishBroadcastNotification(
data
);
expect(function(){
events.publishTaskNotification('I_am_a_invalid_taskId', data);
}).to.throw("Invalid taskId, uuid expected");
});

it("should throw errors with invalid data", function () {
var uuid = helper.injector.get('uuid'),
taskId = uuid.v4(),
data = 'test';
messenger.subscribe = sinon.spy(function(a,b,callback) {
callback(data,testMessage);
return Promise.resolve(testSubscription);
});
messenger.publish.resolves();

expect(function(){
events.publishTaskNotification(taskId, 123);
}).to.throw("Bad Notification Data");
});
});

Expand Down

0 comments on commit 87bffd3

Please sign in to comment.