@@ -414,9 +414,12 @@ var Client = module.exports = function(config) {
414
414
} ;
415
415
416
416
function getPage ( link , which , headers , callback ) {
417
+ var self = this ;
417
418
var url = getPageLinks ( link ) [ which ] ;
418
- if ( ! url )
419
- return callback ( new error . NotFound ( "No " + which + " page found" ) ) ;
419
+ if ( ! url ) {
420
+ var urlErr = new error . NotFound ( "No " + which + " page found" ) ;
421
+ return self . Promise && ! callback ? self . Promise . reject ( urlErr ) : callback ( urlErr ) ;
422
+ }
420
423
421
424
var parsedUrl = Url . parse ( url , true ) ;
422
425
@@ -430,38 +433,24 @@ var Client = module.exports = function(config) {
430
433
params : parsedUrl . query
431
434
} ;
432
435
433
- var self = this ;
434
- this . httpSend ( msg , block , function ( err , res ) {
435
- if ( err )
436
- return self . sendError ( err , null , parsedUrl . query , callback ) ;
437
-
438
- var ret ;
439
- try {
440
- ret = res . data ;
441
- var contentType = res . headers [ "content-type" ] ;
442
- if ( contentType && contentType . indexOf ( "application/json" ) !== - 1 )
443
- ret = JSON . parse ( ret ) ;
444
- }
445
- catch ( ex ) {
446
- if ( callback )
447
- callback ( new error . InternalServerError ( ex . message ) , res ) ;
448
- return ;
449
- }
450
-
451
- if ( ! ret )
452
- ret = { } ;
453
- if ( typeof ret == "object" ) {
454
- if ( ! ret . meta )
455
- ret . meta = { } ;
456
- self . responseHeaders . forEach ( function ( header ) {
457
- if ( res . headers [ header ] )
458
- ret . meta [ header ] = res . headers [ header ] ;
436
+ if ( ! callback ) {
437
+ if ( self . Promise ) {
438
+ return new self . Promise ( function ( resolve , reject ) {
439
+ var cb = function ( err , obj ) {
440
+ if ( err ) {
441
+ reject ( err ) ;
442
+ } else {
443
+ resolve ( obj ) ;
444
+ }
445
+ } ;
446
+ self . handler ( msg , JSON . parse ( JSON . stringify ( block ) ) , cb ) ;
459
447
} ) ;
448
+ } else {
449
+ throw new Error ( 'neither a callback or global promise implementation was provided' ) ;
460
450
}
461
-
462
- if ( callback )
463
- callback ( null , ret ) ;
464
- } ) ;
451
+ } else {
452
+ self . handler ( msg , JSON . parse ( JSON . stringify ( block ) ) , callback ) ;
453
+ }
465
454
}
466
455
467
456
/**
@@ -477,7 +466,7 @@ var Client = module.exports = function(config) {
477
466
callback = headers ;
478
467
headers = null ;
479
468
}
480
- getPage . call ( this , link , "next" , headers , callback ) ;
469
+ return getPage . call ( this , link , "next" , headers , callback ) ;
481
470
} ;
482
471
483
472
/**
@@ -493,7 +482,7 @@ var Client = module.exports = function(config) {
493
482
callback = headers ;
494
483
headers = null ;
495
484
}
496
- getPage . call ( this , link , "prev" , headers , callback ) ;
485
+ return getPage . call ( this , link , "prev" , headers , callback ) ;
497
486
} ;
498
487
499
488
/**
@@ -509,7 +498,7 @@ var Client = module.exports = function(config) {
509
498
callback = headers ;
510
499
headers = null ;
511
500
}
512
- getPage . call ( this , link , "last" , headers , callback ) ;
501
+ return getPage . call ( this , link , "last" , headers , callback ) ;
513
502
} ;
514
503
515
504
/**
@@ -525,7 +514,7 @@ var Client = module.exports = function(config) {
525
514
callback = headers ;
526
515
headers = null ;
527
516
}
528
- getPage . call ( this , link , "first" , headers , callback ) ;
517
+ return getPage . call ( this , link , "first" , headers , callback ) ;
529
518
} ;
530
519
531
520
function getRequestFormat ( hasBody , block ) {
0 commit comments