cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
74 lines (55 loc) • 1.61 kB
JavaScript
var config = require( '../config' );
var agent = require( 'superagent-promise' )( require( 'superagent' ), Promise );
var defaultHeaders = {
Authorization: 'Bearer ' + config.token
};
function isObject( obj ) {
return Object( obj ) === obj;
}
var authRequest = function( method, url ) {
url = config.url.auth + url;
return agent( method, url ).set( defaultHeaders );
};
var apiRequest = function( method, url, data ) {
url = config.url.api + url;
return agent( method, url ).set( defaultHeaders ).then( function( resp ) {
if ( resp ) {
resp.__token = config.token;
}
return resp;
} );
};
var setHeaders = function( field, value ) {
if ( isObject( field ) ) {
for( var key in field ) {
this.set( key, field[ key ] );
}
return this;
}
defaultHeaders[ field ] = value;
return this
};
var frontApiRequest = function( method, url, data ) {
url = config.url.app + url;
var agentCall = agent( method, url );
if ( data ) {
agentCall = agentCall.send( data )
}
return agentCall.withCredentials().set( defaultHeaders );
};
var rawRequest = function( method, url, data ) {
return agent( method, url ).set( defaultHeaders ).then( function( resp ) {
if ( resp ) {
resp.__token = config.token;
}
return resp;
} );
};
authRequest.set = setHeaders;
apiRequest.set = setHeaders;
module.exports = {
authRequest: authRequest,
apiRequest: apiRequest,
frontApiRequest: frontApiRequest,
rawRequest: rawRequest
};