@@ -57,18 +57,24 @@ def client(uri)
5757 def execute ( target_base_url = nil )
5858 base_uri = URI . parse ( target_base_url )
5959 set_common_headers ( net_http_method , base_uri )
60- client ( base_uri ) . start do |http |
61- response = http . request ( net_http_method )
62- decoded = decode ( response [ 'content-encoding' ] , response . body )
63- unless decoded . strip . empty?
64- parsed_body = JSON . parse ( decoded )
65- raise_application_errors_on_failure ( parsed_body , response . code . to_i ) if parsed_body [ 'type' ] == 'error.list'
60+ begin
61+ client ( base_uri ) . start do |http |
62+ begin
63+ response = http . request ( net_http_method )
64+ decoded = decode ( response [ 'content-encoding' ] , response . body )
65+ unless decoded . strip . empty?
66+ parsed_body = JSON . parse ( decoded )
67+ raise_application_errors_on_failure ( parsed_body , response . code . to_i ) if parsed_body [ 'type' ] == 'error.list'
68+ end
69+ raise_errors_on_failure ( response )
70+ parsed_body
71+ rescue Timeout ::Error
72+ raise Intercom ::ServiceUnavailableError . new ( 'Service Unavailable [request timed out]' )
73+ end
6674 end
67- raise_errors_on_failure ( response )
68- parsed_body
75+ rescue Timeout :: Error
76+ raise Intercom :: ServiceConnectionError . new ( 'Failed to connect to service [connection attempt timed out]' )
6977 end
70- rescue Timeout ::Error
71- raise Intercom ::ServiceUnavailableError . new ( 'Service Unavailable' )
7278 end
7379
7480 def decode ( content_encoding , body )
0 commit comments