diff --git a/lib/request.js b/lib/request.js index 739c294..c73973d 100644 --- a/lib/request.js +++ b/lib/request.js @@ -109,6 +109,20 @@ class Request { logger('Request complete'); if (res.statusCode >= 400 && res.statusCode <= 600) { + if (shouldUnzip) { + const unzip = contentEncoding === 'deflate' ? zlib.deflate : zlib.gunzip; + return unzip(Buffer.from(body, encoding), (err, data) => { + if (err) { + return reject(err); + } + + const error = new Error(`Request returned error code: ${res.statusCode} and body: ${data.toString('utf8')}`); + error.code = res.statusCode; + error.responseBody = data.toString('utf8'); + return reject(error); + }); + } + const error = new Error(`Request returned error code: ${res.statusCode} and body: ${body}`); error.code = res.statusCode; error.responseBody = body;