nl_tokens: a private function to automatically refresh the access token when receiving a 401 . Adds rejected requests to a queue to be processed
pl_tokens: function ( context , options , callback ) { // add the current request to the queue context . retryQueue . push ( [ options , callback ] ) ; // bail if the token is currently being refreshed if ( context . refreshActive ) { return false ; } // ready to refresh context . refreshActive = true ; return request ( { uri : baseUrl + '/oauth2/token' , method : 'POST' , headers : { 'Authorization' : 'Basic ' + new Buffer ( context . clientId + ':' + context . clientSecret ) . toString ( 'base64' ) , 'User-Agent' : userAgent } , form : { grant_type : 'client_credentials' } } , function ( err , res , body ) { context . refreshActive = false ; // if anything but a 200 is returned from the token refresh call, we return the error to the // caller and blow out the retry queue if ( <mask> . statusCode != 200 ) { context . retryQueue = [ ] ; return callback && callback ( res . body , res ) ; } // set the access token on the connection var token = JSON . parse ( body ) ; context . accessToken = token . access_token ; // process the queue of requests for the current connection while ( 0 < context . retryQueue . length ) { var reqArgs = context . retryQueue . pop ( ) ; context . apiRequest ( reqArgs [ 0 ] , reqArgs [ 1 ] ) ; } } ) ; }