travis-ci-access-token
Version:
Retrieve an access token to authenticate against Travis CI.
61 lines (47 loc) • 1.31 kB
JavaScript
;
// MODULES //
var debug = require( 'debug' )( 'travis-ci-access-token:query' );
var getOpts = require( './options.js' );
var getData = require( './data.js' );
var request = require( './request.js' );
// QUERY //
/**
* FUNCTION: query( options, clbk )
* Queries a remote endpoint in order to retrieve a token.
*
* @param {Object} options - query options
* @param {Function} clbk - callback to invoke after completing a query
* @returns {Void}
*/
function query( options, clbk ) {
var opts;
var data;
// Extract request options:
opts = getOpts( options );
// Set the query endpoint:
opts.path = options.pathname;
// Get the request data:
data = getData( options );
opts.headers[ 'Content-Length' ] = data.length;
// Make the request:
request( opts, data, done );
/**
* FUNCTION: done( error, response, data )
* Callback invoked after completing request.
*
* @private
* @param {Error|Null} error - error object
* @param {Object} response - HTTP response object
* @param {Object} data - response data
* @returns {Void}
*/
function done( error, response, data ) {
if ( error ) {
return clbk( error );
}
debug( 'Request successfully completed.' );
clbk( null, data );
} // end FUNCTION done()
} // end FUNCTION query()
// EXPORTS //
module.exports = query;