1414 * limitations under the License.
1515 */
1616
17- var GAPIToken = require ( 'gapitoken' ) ,
18- async = require ( 'async' ) ,
19- req = require ( 'request' ) ,
20- pkg = require ( '../../package.json' ) ;
17+ /*jshint camelcase:false */
2118
22- var USER_AGENT = 'gcloud-node/' + pkg . version ,
23- METADATA_TOKEN_URL = 'http://metadata/computeMetadata/v1/instance/service-accounts/default/token' ;
19+ 'use strict' ;
20+
21+ var GAPIToken = require ( 'gapitoken' ) ;
22+ var req = require ( 'request' ) ;
23+ var pkg = require ( '../../package.json' ) ;
24+ var util = require ( './util' ) ;
25+
26+ var METADATA_TOKEN_URL =
27+ 'http://metadata/computeMetadata/v1/instance/service-accounts/default/' +
28+ 'token' ;
29+ var USER_AGENT = 'gcloud-node/' + pkg . version ;
2430
2531/**
2632 * Token represents an access token
@@ -48,8 +54,10 @@ Token.prototype.isExpired = function() {
4854 */
4955function Connection ( opts ) {
5056 var credentials = opts . keyFilename && require ( opts . keyFilename ) || { } ;
51- this . email = credentials [ 'client_email' ] ; // client email for the service account
52- this . privateKey = credentials [ 'private_key' ] ; // contains the contents of a pem file
57+ // client email for the service account
58+ this . email = credentials . client_email ;
59+ // contains the contents of a pem file
60+ this . privateKey = credentials . private_key ;
5361
5462 this . scopes = opts . scopes || [ ] ;
5563 this . token = null ; // existing access token, if exists
@@ -84,7 +92,6 @@ Connection.prototype.connect = function(callback) {
8492 * @param {Function } callback Callback function.
8593 */
8694Connection . prototype . fetchToken = function ( callback ) {
87- var that = this ;
8895 if ( ! this . email || ! this . privateKey ) {
8996 // We should be on GCE, try to retrieve token from
9097 // the metadata from server.
@@ -113,7 +120,7 @@ Connection.prototype.fetchToken = function(callback) {
113120 if ( err ) {
114121 return callback ( err ) ;
115122 }
116- gapi . getToken ( function ( err , t ) {
123+ gapi . getToken ( function ( err ) {
117124 if ( err ) {
118125 return callback ( err ) ;
119126 }
@@ -127,41 +134,52 @@ Connection.prototype.fetchToken = function(callback) {
127134 * Makes an authorized request if the current connection token is
128135 * still valid. Tries to reconnect and makes a request otherwise.
129136 * @param {Object } Request options.
130- * @param {Function= } opt_callback
137+ * @param {Function= } callback
131138 */
132- Connection . prototype . req = function ( reqOpts , opt_callback ) {
139+ Connection . prototype . req = function ( reqOpts , callback ) {
133140 var that = this ;
141+ callback = callback || util . noop ;
134142 this . createAuthorizedReq ( reqOpts , function ( err , authorizedReq ) {
135143 if ( err ) {
136- opt_callback && opt_callback ( err ) ;
144+ callback ( err ) ;
137145 return ;
138146 }
139- that . requester ( authorizedReq , opt_callback ) ;
147+ that . requester ( authorizedReq , callback ) ;
140148 } ) ;
141149} ;
142150
143- Connection . prototype . createAuthorizedReq = function ( reqOpts , opt_callback ) {
151+ Connection . prototype . createAuthorizedReq = function ( reqOpts , callback ) {
144152 var that = this ;
145153 // Add user agent.
146154 reqOpts . headers = reqOpts . headers || { } ;
147- reqOpts . headers [ 'User-Agent' ] = reqOpts . headers [ 'User-Agent' ] ?
148- reqOpts . headers [ 'User-Agent' ] + '; ' + USER_AGENT : USER_AGENT ;
155+
156+ if ( reqOpts . headers [ 'User-Agent' ] ) {
157+ reqOpts . headers [ 'User-Agent' ] += '; ' + USER_AGENT ;
158+ } else {
159+ reqOpts . headers [ 'User-Agent' ] = USER_AGENT ;
160+ }
149161
150162 if ( this . isConnected ( ) ) {
151- return opt_callback && opt_callback ( null , this . authorizeReq ( reqOpts ) ) ;
163+ return callback ( null , this . authorizeReq ( reqOpts ) ) ;
152164 }
153165 if ( this . isConnecting ) {
154166 this . waitQueue = this . waitQueue || [ ] ;
155- this . waitQueue . push ( { req : reqOpts , cb : opt_callback } ) ;
167+ this . waitQueue . push ( { req : reqOpts , cb : callback } ) ;
156168 return ;
157169 }
158170 this . connect ( function ( err ) {
159- that . waitQueue . push ( { req : reqOpts , cb : opt_callback } ) ;
171+ that . waitQueue . push ( { req : reqOpts , cb : callback } ) ;
160172 that . waitQueue . forEach ( function ( v ) {
173+ if ( ! v . cb ) {
174+ return ;
175+ }
176+
161177 if ( err ) {
162- return v . cb && v . cb ( err ) ;
178+ v . cb ( err ) ;
179+ return ;
163180 }
164- v . cb && v . cb ( null , that . authorizeReq ( v . req ) ) ;
181+
182+ v . cb ( null , that . authorizeReq ( v . req ) ) ;
165183 } ) ;
166184 that . waitQueue = [ ] ;
167185 } ) ;
@@ -189,7 +207,7 @@ Connection.prototype.isConnected = function() {
189207Connection . prototype . authorizeReq = function ( reqOpts ) {
190208 // TODO(jbd): Clone the request object.
191209 reqOpts . headers = reqOpts . headers || { } ;
192- reqOpts . headers [ ' Authorization' ] = 'Bearer ' + this . token . accessToken ;
210+ reqOpts . headers . Authorization = 'Bearer ' + this . token . accessToken ;
193211 return reqOpts ;
194212} ;
195213
0 commit comments