Skip to content
This repository has been archived by the owner on Oct 21, 2022. It is now read-only.

Commit

Permalink
Merged upstream changes
Browse files Browse the repository at this point in the history
  • Loading branch information
carl-eis committed Nov 24, 2016
2 parents f8840ed + 750d6a3 commit f2369b9
Show file tree
Hide file tree
Showing 2 changed files with 173 additions and 32 deletions.
142 changes: 110 additions & 32 deletions lib/Adaptor.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", {
});
exports.lastReferenceValue = exports.dataValue = exports.dataPath = exports.merge = exports.alterState = exports.sourceValue = exports.fields = exports.field = undefined;

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

exports.execute = execute;
exports.fetch = fetch;
exports.fetchWithErrors = fetchWithErrors;
exports.post = post;
exports.postData = postData;
exports.get = get;
Expand Down Expand Up @@ -120,16 +121,16 @@ function execute() {
function fetch(params) {

return function (state) {
var _expandReferences = (0, _languageCommon.expandReferences)(params)(state),
getEndpoint = _expandReferences.getEndpoint,
query = _expandReferences.query,
postUrl = _expandReferences.postUrl;
var _expandReferences = (0, _languageCommon.expandReferences)(params)(state);

var _state$configuration = state.configuration,
username = _state$configuration.username,
password = _state$configuration.password,
baseUrl = _state$configuration.baseUrl,
authType = _state$configuration.authType;
var getEndpoint = _expandReferences.getEndpoint;
var query = _expandReferences.query;
var postUrl = _expandReferences.postUrl;
var _state$configuration = state.configuration;
var username = _state$configuration.username;
var password = _state$configuration.password;
var baseUrl = _state$configuration.baseUrl;
var authType = _state$configuration.authType;


var sendImmediately = authType == 'digest' ? false : true;
Expand All @@ -151,6 +152,79 @@ function fetch(params) {
};
}

/**
* Make a GET request and POST the response somewhere else without failing.
*/
function fetchWithErrors(params) {

return function (state) {
var _expandReferences2 = (0, _languageCommon.expandReferences)(params)(state);

var getEndpoint = _expandReferences2.getEndpoint;
var query = _expandReferences2.query;
var externalId = _expandReferences2.externalId;
var postUrl = _expandReferences2.postUrl;
var _state$configuration2 = state.configuration;
var username = _state$configuration2.username;
var password = _state$configuration2.password;
var baseUrl = _state$configuration2.baseUrl;
var authType = _state$configuration2.authType;


var sendImmediately = authType == 'digest' ? false : true;

var url = (0, _url.resolve)(baseUrl + '/', getEndpoint);

console.log("Performing an error-less GET on URL: " + url);
console.log("Applying query: " + JSON.stringify(query));

function assembleError(_ref) {
var response = _ref.response;
var error = _ref.error;

if (response && [200, 201, 202].indexOf(response.statusCode) > -1) return false;
if (error) return error;
return new Error('Server responded with ' + response.statusCode);
}

return new Promise(function (resolve, reject) {

(0, _request2.default)({
url: url, //URL to hit
qs: query, //Query string data
method: 'GET', //Specify the method
auth: {
'user': username,
'pass': password,
'sendImmediately': sendImmediately
}
}, function (error, response, body) {
var taggedResponse = {
response: response,
externalId: externalId
};
console.log(taggedResponse);
_request2.default.post({
url: postUrl,
json: taggedResponse
}, function (error, response, postResponseBody) {
error = assembleError({ error: error, response: response });
if (error) {
console.error("POST failed.");
reject(error);
} else {
console.log("POST succeeded.");
resolve(body);
}
});
});
}).then(function (data) {
var nextState = _extends({}, state, { response: { body: data } });
return nextState;
});
};
}

/**
* Make a POST request
* @example
Expand All @@ -161,10 +235,10 @@ function fetch(params) {
* @param {object} params - data to make the POST
* @returns {Operation}
*/
function post(url, _ref) {
var body = _ref.body,
callback = _ref.callback,
headers = _ref.headers;
function post(url, _ref2) {
var body = _ref2.body;
var callback = _ref2.callback;
var headers = _ref2.headers;


return function (state) {
Expand Down Expand Up @@ -197,10 +271,12 @@ function post(url, _ref) {
function postData(params) {

return function (state) {
var _expandReferences2 = (0, _languageCommon.expandReferences)(params)(state),
url = _expandReferences2.url,
body = _expandReferences2.body,
headers = _expandReferences2.headers;
var _expandReferences3 = (0, _languageCommon.expandReferences)(params)(state);

var url = _expandReferences3.url;
var body = _expandReferences3.body;
var headers = _expandReferences3.headers;


return new Promise(function (resolve, reject) {
console.log("Request body:");
Expand Down Expand Up @@ -241,13 +317,13 @@ function postData(params) {
* @param {object} params - callback and query parameters
* @returns {Operation}
*/
function get(path, _ref2) {
var query = _ref2.query,
callback = _ref2.callback;
function get(path, _ref3) {
var query = _ref3.query;
var callback = _ref3.callback;

function assembleError(_ref3) {
var response = _ref3.response,
error = _ref3.error;
function assembleError(_ref4) {
var response = _ref4.response;
var error = _ref4.error;

if ([200, 201, 202].indexOf(response.statusCode) > -1) return false;
if (error) return error;
Expand All @@ -256,14 +332,16 @@ function get(path, _ref2) {
}

return function (state) {
var _state$configuration2 = state.configuration,
username = _state$configuration2.username,
password = _state$configuration2.password,
baseUrl = _state$configuration2.baseUrl,
authType = _state$configuration2.authType;

var _expandReferences3 = (0, _languageCommon.expandReferences)({ query: query })(state),
qs = _expandReferences3.query;
var _state$configuration3 = state.configuration;
var username = _state$configuration3.username;
var password = _state$configuration3.password;
var baseUrl = _state$configuration3.baseUrl;
var authType = _state$configuration3.authType;

var _expandReferences4 = (0, _languageCommon.expandReferences)({ query: query })(state);

var qs = _expandReferences4.query;


var sendImmediately = authType != 'digest';

Expand Down
63 changes: 63 additions & 0 deletions src/Adaptor.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,69 @@ export function fetch(params) {
}
}

/**
* Make a GET request and POST the response somewhere else without failing.
*/
export function fetchWithErrors(params) {

return state => {

const { getEndpoint, query, externalId, postUrl } = expandReferences(params)(state);

const { username, password, baseUrl, authType } = state.configuration;

var sendImmediately = authType == 'digest' ? false : true;

const url = resolveUrl(baseUrl + '/', getEndpoint)

console.log("Performing an error-less GET on URL: " + url);
console.log("Applying query: " + JSON.stringify(query))

function assembleError({ response, error }) {
if (response && ([200,201,202].indexOf(response.statusCode) > -1)) return false;
if (error) return error;
return new Error(`Server responded with ${response.statusCode}`)
}

return new Promise((resolve, reject) => {

request({
url: url, //URL to hit
qs: query, //Query string data
method: 'GET', //Specify the method
auth: {
'user': username,
'pass': password,
'sendImmediately': sendImmediately
}
}, function(error, response, body){
var taggedResponse = {
response: response,
externalId: externalId
}
console.log(taggedResponse)
request.post ({
url: postUrl,
json: taggedResponse
}, function(error, response, postResponseBody){
error = assembleError({error, response})
if (error) {
console.error("POST failed.")
reject(error);
} else {
console.log("POST succeeded.");
resolve(body);
}
})
});

}).then((data) => {
const nextState = { ...state, response: { body: data } };
return nextState;
})
}
}

/**
* Make a POST request
* @example
Expand Down

0 comments on commit f2369b9

Please sign in to comment.