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

Commit

Permalink
Return Error object on server error response
Browse files Browse the repository at this point in the history
  • Loading branch information
stuartc committed Aug 29, 2016
1 parent a5fb78d commit b96500b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
10 changes: 7 additions & 3 deletions lib/Adaptor.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,14 @@ function get(path, _ref2) {
var query = _ref2.query;
var callback = _ref2.callback;

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

return [200, 201, 202].indexOf(response.statusCode) == -1 || !!error;
if ([200, 201, 202].indexOf(response.statusCode) > -1) return false;
if (error) return error;

return new Error('Server responded with ' + response.statusCode);
}

return function (state) {
Expand Down Expand Up @@ -243,7 +246,8 @@ function get(path, _ref2) {
'sendImmediately': sendImmediately
}
}, function (error, response, body) {
if (isError({ error: error, response: response })) {
error = assembleError({ error: error, response: response });
if (error) {
reject(error);
} else {
resolve(JSON.parse(body));
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "language-http",
"version": "0.0.8",
"version": "0.0.9",
"description": "An HTTP Language Pack for OpenFn",
"main": "lib/index.js",
"scripts": {
Expand Down
10 changes: 7 additions & 3 deletions src/Adaptor.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,11 @@ export function post(url, {body, callback}) {
* @returns {Operation}
*/
export function get(path, {query, callback}) {
function isError({ response, error }) {
return ([200,201,202].indexOf(response.statusCode) == -1 || !!error)
function assembleError({ response, error }) {
if ([200,201,202].indexOf(response.statusCode) > -1) return false;
if (error) return error;

return new Error(`Server responded with ${response.statusCode}`)
}

return state => {
Expand All @@ -140,7 +143,8 @@ export function get(path, {query, callback}) {
'sendImmediately': sendImmediately
}
}, function(error, response, body){
if ( isError({error, response}) ) {
error = assembleError({error, response})
if (error) {
reject(error);
} else {
resolve(JSON.parse(body))
Expand Down

0 comments on commit b96500b

Please sign in to comment.