lib/soapy_cake/client.rb in soapy_cake-2.2.3 vs lib/soapy_cake/client.rb in soapy_cake-2.2.4

- old
+ new

@@ -27,12 +27,21 @@ check_write_enabled!(request) request.api_key = api_key request.time_converter = time_converter with_retries do - response = Response.new(response_body(request), request.short_response?, time_converter) - xml_response? ? response.to_xml : response.to_enum + begin + response = Response.new(response_body(request), request.short_response?, time_converter) + xml_response? ? response.to_xml : response.to_enum + rescue RequestFailed => e + raise RequestFailed.new( + e.message, + request_path: request.path, + request_body: request.xml, + response_body: e.response_body || response.body + ) + end end end protected @@ -82,21 +91,23 @@ response = perform_http_request(http_request) unless response.is_a?(Net::HTTPSuccess) raise RequestFailed.new( "Request failed with HTTP #{response.code}", - request_path: request.path, - request_body: http_request.body, response_body: response.body ) end response.body end def perform_http_request(http_request) - Net::HTTP.start(domain, - use_ssl: true, open_timeout: NET_TIMEOUT, read_timeout: NET_TIMEOUT) do |http| + Net::HTTP.start( + domain, + use_ssl: true, + open_timeout: NET_TIMEOUT, + read_timeout: NET_TIMEOUT + ) do |http| http.request(http_request) end end end end