lib/pardot/http.rb in ruby-pardot-1.0 vs lib/pardot/http.rb in ruby-pardot-1.0.2
- old
+ new
@@ -7,11 +7,11 @@
check_response self.class.get(full_path, :query => params)
rescue Pardot::ExpiredApiKeyError => e
handle_expired_api_key :get, object, path, params, num_retries, e
- rescue SocketError, Interrupt, EOFError, SystemCallError => e
+ rescue SocketError, Interrupt, EOFError, SystemCallError, Timeout::Error, MultiXml::ParseError => e
raise Pardot::NetError.new(e)
end
def post object, path, params = {}, num_retries = 0
smooth_params object, params
@@ -19,11 +19,11 @@
check_response self.class.post(full_path, :query => params)
rescue Pardot::ExpiredApiKeyError => e
handle_expired_api_key :post, object, path, params, num_retries, e
- rescue SocketError, Interrupt, EOFError, SystemCallError => e
+ rescue SocketError, Interrupt, EOFError, SystemCallError, Timeout::Error, MultiXml::ParseError => e
raise Pardot::NetError.new(e)
end
protected
@@ -45,11 +45,12 @@
def check_response http_response
rsp = http_response["rsp"]
error = rsp["err"] if rsp
error ||= "Unknown Failure: #{rsp.inspect}" if rsp && rsp["stat"] == "fail"
+ content = error['__content__'] if error.is_a?(Hash)
- if error == "Invalid API key or user key" && @api_key
+ if [error, content].include?("Invalid API key or user key") && @api_key
raise ExpiredApiKeyError.new @api_key
end
raise ResponseError.new error if error