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