rest-facade
Advanced tools
Comparing version 1.2.7 to 1.3.0
{ | ||
"name": "rest-facade", | ||
"version": "1.2.7", | ||
"version": "1.3.0", | ||
"description": "Simple abstraction for consuming REST API endpoints", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -22,2 +22,6 @@ # rest-facade [](https://travis-ci.org/ngonzalvez/rest-facade) | ||
Authorization: 'Bearer token' | ||
}, | ||
errorFormatter: { | ||
name: 'error.title', | ||
message: 'error.text', | ||
} | ||
@@ -24,0 +28,0 @@ }; |
@@ -10,4 +10,4 @@ var extend = require('util')._extend; | ||
var defaultOptions = require('./defaultOptions'); | ||
var goToPath = require('./utils'); | ||
/** | ||
@@ -25,3 +25,4 @@ * @class | ||
this.options = extend(defaultOptions, options); | ||
this.options = extend({}, defaultOptions); | ||
this.options = extend(this.options, options); | ||
this.url = url.parse(resourceUrl); | ||
@@ -230,2 +231,3 @@ }; | ||
var headers = this.options.headers || {}; | ||
var errorFormatter = this.options.errorFormatter || null; | ||
var selectedCase = this.options.query.convertCase; | ||
@@ -275,6 +277,12 @@ var queryParams = {}; | ||
var status = err.status; | ||
var error; | ||
var name = data.name || data.title || data.error; | ||
var message = data.message || data.error_message; | ||
var error = new APIError(name, message, status); | ||
if (errorFormatter && errorFormatter.hasOwnProperty('name') && | ||
errorFormatter.hasOwnProperty('message')) { | ||
var name = goToPath(errorFormatter.name, data); | ||
var message = goToPath(errorFormatter.message, data); | ||
error = new APIError(name, message, status); | ||
} else { | ||
error = new APIError('APIError', JSON.stringify(data), status); | ||
} | ||
@@ -281,0 +289,0 @@ return reject(error); |
@@ -5,2 +5,3 @@ var util = require('util'); | ||
var ArgumentError = function(name, message, status){ | ||
Error.captureStackTrace(this, this.constructor); | ||
this.name = name; | ||
@@ -7,0 +8,0 @@ this.message = message; |
@@ -5,2 +5,4 @@ var util = require('util'); | ||
var ArgumentError = function(message){ | ||
Error.captureStackTrace(this, this.constructor); | ||
this.name = 'ArgumentError'; | ||
this.message = message; | ||
@@ -7,0 +9,0 @@ }; |
@@ -142,4 +142,8 @@ var extend = require('util')._extend; | ||
this.data = { name: 'Test' }; | ||
this.successReq = nock(domain).get(endpoint + '/OK').reply(200, this.data); | ||
this.errorReq = nock(domain).get(endpoint + '/FAIL').replyWithError(); | ||
this.successReq = nock(domain) | ||
.get(endpoint + '/OK') | ||
.reply(200, this.data); | ||
this.errorReq = nock(domain) | ||
.get(endpoint + '/FAIL') | ||
.replyWithError({name: 'Unauthorized', message: 'Invalid token'}); | ||
}, | ||
@@ -217,5 +221,6 @@ | ||
function (done) { | ||
var req = this.errorReq; | ||
done(); | ||
this.client.get({ id: 'FAIL' }, function (err) { | ||
expect(err).to.exist; | ||
done(); | ||
}); | ||
} | ||
@@ -222,0 +227,0 @@ }, |
37445
19
858
177