From 71fd7e0a13c4526a0f2add951443af7173825eb3 Mon Sep 17 00:00:00 2001 From: Will White Date: Thu, 21 Feb 2013 13:46:36 -0500 Subject: [PATCH] Handle single error responses from AWS. The result object can either have `Error` or `Errors` depending on the service or the number of errors generated. Refs livelycode/aws-lib/issues#42 --- lib/aws.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/aws.js b/lib/aws.js index da56279..6b9dcb7 100644 --- a/lib/aws.js +++ b/lib/aws.js @@ -118,10 +118,15 @@ var genericAWSClient = function(obj) { res.addListener('end', function() { var parser = new xml2js.Parser(); parser.addListener('end', function(result) { - if (typeof result != "undefined" && typeof result.Errors != "undefined"){ - callback(new Error(result.Errors.Error.Message), result) + if (typeof result != "undefined") { + var err = result.Error || (result.Errors ? result.Errors.Error : null) + if (err) { + callback(new Error(err.Message), result) + } else { + callback(null, result) + } } else { - callback(null, result) + callback(new Error('Unable to parse XML from AWS.')) } }); parser.parseString(data);