diff --git a/src/index.js b/src/index.js index 59c6953..8a596a9 100644 --- a/src/index.js +++ b/src/index.js @@ -124,17 +124,30 @@ class DSHttpAdapter { config.url += suffix; } + // logs the HTTP response function logResponse(data) { - let str = `${start.toUTCString()} - ${data.config.method.toUpperCase()} ${data.config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); + // examine the data object + if (data instanceof Error) { + // log the Error object + _this.defaults.error(`'FAILED: ${data.message || 'Unknown Error'}'`, data); + return DSUtils.Promise.reject(data); + } else if (data instanceof Object) { + let str = `${start.toUTCString()} - ${data.config.method.toUpperCase()} ${data.config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`; + + if (data.status >= 200 && data.status < 300) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error(`'FAILED: ${str}'`, data); + } + return DSUtils.Promise.reject(data); } - return data; } else { - if (_this.defaults.error) { - _this.defaults.error(`'FAILED: ${str}`, data); - } + // unknown type for 'data' that is not an Object or Error + _this.defaults.error(`'FAILED'`, data); return DSUtils.Promise.reject(data); } } @@ -289,4 +302,3 @@ class DSHttpAdapter { } module.exports = DSHttpAdapter; -