@@ -48,7 +48,7 @@ function build_url( url_components, url_params ) {
48
48
if ( ! url_params ) return url ;
49
49
50
50
each ( url_params , function ( key , value ) {
51
- params . push ( key + "=" + encode_param ( value ) ) ;
51
+ ( typeof value != 'undefined' ) && params . push ( key + "=" + encode_param ( value ) ) ;
52
52
} ) ;
53
53
54
54
url += "?" + params . join ( PARAMSBIT ) ;
@@ -280,6 +280,7 @@ function PN_API(setup) {
280
280
, count = args [ 'count' ] || args [ 'limit' ] || 100
281
281
, reverse = args [ 'reverse' ] || "false"
282
282
, err = args [ 'error' ] || function ( ) { }
283
+ , auth_key = args [ 'auth_key' ] || AUTH_KEY
283
284
, channel = args [ 'channel' ]
284
285
, start = args [ 'start' ]
285
286
, end = args [ 'end' ]
@@ -294,7 +295,7 @@ function PN_API(setup) {
294
295
params [ 'stringtoken' ] = 'true' ;
295
296
params [ 'count' ] = count ;
296
297
params [ 'reverse' ] = reverse ;
297
- params [ 'auth' ] = AUTH_KEY ;
298
+ params [ 'auth' ] = auth_key ;
298
299
299
300
if ( jsonp ) params [ 'callback' ] = jsonp ;
300
301
if ( start ) params [ 'start' ] = start ;
@@ -304,7 +305,13 @@ function PN_API(setup) {
304
305
xdr ( {
305
306
callback : jsonp ,
306
307
data : params ,
307
- success : function ( response ) { callback ( response ) } ,
308
+ success : function ( response ) {
309
+ if ( typeof response == 'object' && response [ 'error' ] ) {
310
+ err ( response ) ;
311
+ return ;
312
+ }
313
+ callback ( response )
314
+ } ,
308
315
fail : err ,
309
316
url : [
310
317
STD_ORIGIN , 'v2' , 'history' , 'sub-key' ,
@@ -321,6 +328,7 @@ function PN_API(setup) {
321
328
*/
322
329
'replay' : function ( args ) {
323
330
var callback = callback || args [ 'callback' ] || function ( ) { }
331
+ , auth_key = args [ 'auth_key' ] || AUTH_KEY
324
332
, source = args [ 'source' ]
325
333
, destination = args [ 'destination' ]
326
334
, stop = args [ 'stop' ]
@@ -346,7 +354,7 @@ function PN_API(setup) {
346
354
if ( end ) data [ 'end' ] = end ;
347
355
if ( limit ) data [ 'count' ] = limit ;
348
356
349
- data [ 'auth' ] = AUTH_KEY ;
357
+ data [ 'auth' ] = auth_key ;
350
358
351
359
// Compose URL Parts
352
360
url = [
@@ -358,7 +366,13 @@ function PN_API(setup) {
358
366
// Start (or Stop) Replay!
359
367
xdr ( {
360
368
callback : jsonp ,
361
- success : function ( response ) { callback ( response ) } ,
369
+ success : function ( response ) {
370
+ if ( typeof response == 'object' && response [ 'error' ] ) {
371
+ err ( response ) ;
372
+ return ;
373
+ }
374
+ callback ( response )
375
+ } ,
362
376
fail : function ( ) { callback ( [ 0 , 'Disconnected' ] ) } ,
363
377
url : url ,
364
378
data : data
@@ -398,6 +412,8 @@ function PN_API(setup) {
398
412
var callback = callback || args [ 'callback' ] || function ( ) { }
399
413
, msg = args [ 'message' ]
400
414
, channel = args [ 'channel' ]
415
+ , auth_key = args [ 'auth_key' ] || AUTH_KEY
416
+ , err = args [ 'error' ] || function ( ) { }
401
417
, jsonp = jsonp_cb ( )
402
418
, url ;
403
419
@@ -422,9 +438,16 @@ function PN_API(setup) {
422
438
callback : jsonp ,
423
439
timeout : SECOND * 5 ,
424
440
url : url ,
425
- data : { 'uuid' : UUID , 'auth' : AUTH_KEY } ,
426
- success : function ( response ) { callback ( response ) ; publish ( 1 ) } ,
427
- fail : function ( ) { callback ( [ 0 , 'Failed' , msg ] ) ; publish ( 1 ) }
441
+ data : { 'uuid' : UUID , 'auth' : auth_key } ,
442
+ success : function ( response ) {
443
+ if ( typeof response == 'object' && response [ 'error' ] ) {
444
+ err ( response ) ;
445
+ } else {
446
+ callback ( response ) ;
447
+ }
448
+ publish ( 1 ) ;
449
+ } ,
450
+ fail : function ( response ) { err ( response ) ; publish ( 1 ) }
428
451
} ) ;
429
452
430
453
// Send Message
@@ -468,6 +491,7 @@ function PN_API(setup) {
468
491
var channel = args [ 'channel' ]
469
492
, callback = callback || args [ 'callback' ]
470
493
, callback = callback || args [ 'message' ]
494
+ , auth_key = args [ 'auth_key' ] || AUTH_KEY
471
495
, connect = args [ 'connect' ] || function ( ) { }
472
496
, reconnect = args [ 'reconnect' ] || function ( ) { }
473
497
, disconnect = args [ 'disconnect' ] || function ( ) { }
@@ -586,7 +610,7 @@ function PN_API(setup) {
586
610
SUB_RECEIVER = null ;
587
611
SELF [ 'time' ] ( _test_connection ) ;
588
612
} ,
589
- data : { 'uuid' : UUID , 'auth' : AUTH_KEY } ,
613
+ data : { 'uuid' : UUID , 'auth' : auth_key } ,
590
614
url : [
591
615
SUB_ORIGIN , 'subscribe' ,
592
616
SUBSCRIBE_KEY , encode ( channels ) ,
@@ -598,8 +622,7 @@ function PN_API(setup) {
598
622
// Check for Errors
599
623
if ( ! messages || (
600
624
typeof messages == 'object' &&
601
- 'error' in messages &&
602
- ! messages [ 'error' ] )
625
+ messages [ 'error' ] )
603
626
) {
604
627
errcb ( messages ) ;
605
628
return timeout ( CONNECT , windowing ) ;
@@ -672,9 +695,10 @@ function PN_API(setup) {
672
695
'here_now' : function ( args , callback ) {
673
696
var callback = args [ 'callback' ] || callback
674
697
, err = args [ 'error' ] || function ( ) { }
698
+ , auth_key = args [ 'auth_key' ] || AUTH_KEY
675
699
, channel = args [ 'channel' ]
676
700
, jsonp = jsonp_cb ( )
677
- , data = { 'uuid' : UUID , 'auth' : AUTH_KEY } ;
701
+ , data = { 'uuid' : UUID , 'auth' : auth_key } ;
678
702
679
703
// Make sure we have a Channel
680
704
if ( ! channel ) return error ( 'Missing Channel' ) ;
@@ -686,7 +710,13 @@ function PN_API(setup) {
686
710
xdr ( {
687
711
callback : jsonp ,
688
712
data : data ,
689
- success : function ( response ) { callback ( response , channel ) } ,
713
+ success : function ( response ) {
714
+ if ( typeof response == 'object' && response [ 'error' ] ) {
715
+ err ( response ) ;
716
+ return ;
717
+ }
718
+ callback ( response )
719
+ } ,
690
720
fail : err ,
691
721
url : [
692
722
STD_ORIGIN , 'v2' , 'presence' ,
0 commit comments