Skip to content
This repository was archived by the owner on Jun 14, 2019. It is now read-only.

Commit 39b8787

Browse files
committed
Merge branch 'canary'
2 parents 11060ed + dca55c6 commit 39b8787

File tree

17 files changed

+788
-261
lines changed

17 files changed

+788
-261
lines changed

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author": "Jan Philipp",
33
"name": "angular-vertxbus",
44
"description": "AngularJS facade and service acting as a Vert.x SockJS client",
5-
"version": "5.0.0",
5+
"version": "6.0.0",
66
"homepage": "http://github.com/knalli/angular-vertxbus",
77
"main": "./dist/angular-vertxbus.js",
88
"keywords": [
@@ -29,7 +29,7 @@
2929
"dependencies": {
3030
"angular": ">=1.2 <=1.5",
3131
"sockjs-client": "1.0.3",
32-
"vertx3-eventbus-client": "3.2.1"
32+
"vertx3-eventbus-client": "~3.2.1"
3333
},
3434
"devDependencies": {
3535
"angular": "~1.4.4",

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-vertxbus",
3-
"version": "5.0.0",
3+
"version": "6.0.0",
44
"description": "AngularJS facade and service acting as a Vert.x SockJS client",
55
"main": "dist/angular-vertxbus.js",
66
"keywords": [
@@ -45,14 +45,14 @@
4545
"babel": "^6.5.0",
4646
"babel-cli": "^6.5.0",
4747
"babel-core": "^6.0.2",
48-
"babel-eslint": "^5.0.0",
48+
"babel-eslint": "^6.0.1",
4949
"babel-istanbul-loader": "^0.1.0",
5050
"babel-loader": "^6.2.3",
5151
"babel-plugin-transform-runtime": "^6.5.2",
5252
"babel-polyfill": "^6.0.14",
5353
"babel-preset-es2015": "^6.5.0",
5454
"bower": "1.7.7",
55-
"eslint": "^2.4.0",
55+
"eslint": "^2.5.3",
5656
"eslint-loader": "^1.3.0",
5757
"eslint-plugin-angular": "^1.0.0",
5858
"estraverse": "^4.1.0",

src/lib/VertxEventBusServiceProvider.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import Delegator from './service/Delegator';
1313
const DEFAULTS = {
1414
enabled : true,
1515
debugEnabled : false,
16+
authRequired : false,
1617
prefix : 'vertx-eventbus.',
1718
sockjsStateInterval : 10000,
1819
messageBuffer : 10000
@@ -110,6 +111,28 @@ let VertxEventBusServiceProvider = function () {
110111
return this;
111112
};
112113

114+
/**
115+
* @ngdoc method
116+
* @module knalli.angular-vertxbus
117+
* @methodOf knalli.angular-vertxbus.vertxEventBusServiceProvider
118+
* @name .#authHandler
119+
*
120+
* @description
121+
* Function or service reference name for function checking the authorization state.
122+
*
123+
* The result of the function must be a boolean or promise. The handler can (but is not required) to create authorization on demand.
124+
* If it is resolved, the authorization is valid.
125+
* If it is rejected, the authorization is invalid.
126+
*
127+
* @param {string|function} value authorization handler (either a function or a service name)
128+
* @returns {object} promise
129+
*/
130+
this.authHandler = (value) => {
131+
options.authHandler = value;
132+
options.authRequired = !!value;
133+
return this;
134+
};
135+
113136
/**
114137
* @ngdoc service
115138
* @module knalli.angular-vertxbus
@@ -140,14 +163,15 @@ let VertxEventBusServiceProvider = function () {
140163
* @requires $q
141164
* @requires $interval
142165
* @requires $log
166+
* @requires $injector
143167
*/
144168
/* @ngInject */
145-
this.$get = ($rootScope, $q, $interval, vertxEventBus, $log) => {
169+
this.$get = ($rootScope, $q, $interval, vertxEventBus, $log, $injector) => {
146170
// Current options (merged defaults with application-wide settings)
147171
let instanceOptions = angular.extend({}, vertxEventBus.getOptions(), options);
148172
if (instanceOptions.enabled) {
149173
return new Delegator(
150-
new EventBusDelegate($rootScope, $interval, $log, $q, vertxEventBus, instanceOptions),
174+
new EventBusDelegate($rootScope, $interval, $log, $q, $injector, vertxEventBus, instanceOptions),
151175
$log
152176
);
153177
} else {

src/lib/adapter/BaseAdapter.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,29 @@ export default class BaseAdapter {
4444
onclose() {
4545
}
4646

47+
// private
48+
getDefaultHeaders() {
49+
return this.defaultHeaders;
50+
}
51+
52+
/**
53+
* @ngdoc method
54+
* @module knalli.angular-vertxbus
55+
* @methodOf knalli.angular-vertxbus.vertxEventBus
56+
* @name .#applyDefaultHeaders
57+
*
58+
* @description
59+
* Stores the given default headers
60+
*
61+
* @param {object} headers additional standard headers
62+
*/
63+
applyDefaultHeaders(headers = {}) {
64+
this.defaultHeaders = angular.extend({}, headers);
65+
}
66+
67+
// private
68+
getMergedHeaders(headers = {}) {
69+
return angular.extend({}, this.defaultHeaders, headers);
70+
}
71+
4772
}

src/lib/adapter/EventBusAdapter.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import ConnectionConfigHolder from './../support/ConnectionConfigHolder';
2727
*
2828
* @param {string} address target address
2929
* @param {object} message payload message
30+
* @param {object=} headers headers
3031
* @param {function=} replyHandler optional callback
3132
* @param {function=} failureHandler optional callback
3233
*/
@@ -39,6 +40,7 @@ import ConnectionConfigHolder from './../support/ConnectionConfigHolder';
3940
*
4041
* @param {string} address target address
4142
* @param {object} message payload message
43+
* @param {object=} headers headers
4244
*/
4345

4446
/**
@@ -49,6 +51,7 @@ import ConnectionConfigHolder from './../support/ConnectionConfigHolder';
4951
*
5052
* @param {string} address target address
5153
* @param {function} handler callback handler
54+
* @param {object=} headers headers
5255
*/
5356

5457
/**
@@ -59,6 +62,7 @@ import ConnectionConfigHolder from './../support/ConnectionConfigHolder';
5962
*
6063
* @param {string} address target address
6164
* @param {function} handler callback handler to be removed
65+
* @param {object=} headers headers
6266
*/
6367

6468
/**
@@ -115,6 +119,7 @@ export default class EventBusAdapter extends BaseAdapter {
115119
sockjsOptions
116120
};
117121
this.disconnectTimeoutEnabled = true;
122+
this.applyDefaultHeaders();
118123
if (initialConnectEnabled) {
119124
// asap create connection
120125
this.connect();
@@ -253,18 +258,13 @@ export default class EventBusAdapter extends BaseAdapter {
253258
*
254259
* @param {string} address target address
255260
* @param {object} message payload message
256-
* @param {object=} headers
261+
* @param {object} headers optional headers
257262
* @param {function=} replyHandler optional callback
258-
* @param {function=} failureHandler optional callback (since Vert.x 3.0.0)
259263
*/
260-
send(address, message, headers, replyHandler, failureHandler) {
264+
send(address, message, headers, replyHandler) {
261265
if (this.instance) {
262-
if (angular.isFunction(headers)) {
263-
failureHandler = replyHandler;
264-
replyHandler = headers;
265-
headers = undefined;
266-
}
267-
this.instance.send(address, message, headers, replyHandler, failureHandler);
266+
const mergedHeaders = this.getMergedHeaders(headers);
267+
this.instance.send(address, message, mergedHeaders, replyHandler);
268268
}
269269
}
270270

@@ -286,7 +286,8 @@ export default class EventBusAdapter extends BaseAdapter {
286286
*/
287287
publish(address, message, headers) {
288288
if (this.instance) {
289-
this.instance.publish(address, message, headers);
289+
const mergedHeaders = this.getMergedHeaders(headers);
290+
this.instance.publish(address, message, mergedHeaders);
290291
}
291292
}
292293

@@ -303,7 +304,7 @@ export default class EventBusAdapter extends BaseAdapter {
303304
* - {@link global.EventBus#methods_registerHandler EventBus.registerHandler()}
304305
*
305306
* @param {string} address target address
306-
* @param {object} headers optional headers
307+
* @param {object=} headers optional headers
307308
* @param {function} handler callback handler
308309
*/
309310
registerHandler(address, headers, handler) {
@@ -312,10 +313,11 @@ export default class EventBusAdapter extends BaseAdapter {
312313
handler = headers;
313314
headers = undefined;
314315
}
315-
this.instance.registerHandler(address, headers, handler);
316+
const mergedHeaders = this.getMergedHeaders(headers);
317+
this.instance.registerHandler(address, mergedHeaders, handler);
316318
// and return the deregister callback
317319
let deconstructor = () => {
318-
this.unregisterHandler(address, headers, handler);
320+
this.unregisterHandler(address, mergedHeaders, handler);
319321
};
320322
deconstructor.displayName = `${moduleName}.wrapper.eventbus.registerHandler.deconstructor`;
321323
return deconstructor;
@@ -335,7 +337,7 @@ export default class EventBusAdapter extends BaseAdapter {
335337
* - {@link global.EventBus#methods_unregisterHandler EventBus.unregisterHandler()}
336338
*
337339
* @param {string} address target address
338-
* @param {object} headers optional headers
340+
* @param {object=} headers optional headers
339341
* @param {function} handler callback handler to be removed
340342
*/
341343
unregisterHandler(address, headers, handler) {
@@ -344,7 +346,8 @@ export default class EventBusAdapter extends BaseAdapter {
344346
handler = headers;
345347
headers = undefined;
346348
}
347-
this.instance.unregisterHandler(address, headers, handler);
349+
const mergedHeaders = this.getMergedHeaders(headers);
350+
this.instance.unregisterHandler(address, mergedHeaders, handler);
348351
}
349352
}
350353

0 commit comments

Comments
 (0)