Added better handling for errors.
authorBob Aman <bobaman@google.com>
Thu, 22 Sep 2011 09:21:05 +0000 (12:21 +0300)
committerBob Aman <bobaman@google.com>
Thu, 22 Sep 2011 09:21:22 +0000 (12:21 +0300)
lib/google/api_client.rb

index e12a9d637194d1f979f36e6a4cd52893beeb6b03..ceb18edb8e090ca35f442aa5a1ad54358ca57459 100644 (file)
@@ -594,10 +594,13 @@ module Google
     def execute!(*params)
       result = self.execute(*params)
       status, _, _ = result.response
-      if result.data.respond_to?(:error)
+      if result.data.respond_to?(:error) &&
+          result.data.error.respond_to?(:message)
         # You're going to get a terrible error message if the response isn't
         # parsed successfully as an error.
-        error_message = result.data.error
+        error_message = result.data.error.message
+      elsif result.data['error'] && result.data['error']['message']
+        error_message = result.data['error']['message']
       end
       if status >= 400 && status < 500
         raise ClientError,