@@ -9,21 +9,24 @@ def initialize(zip:, account_link:)
99 end
1010
1111 def execute
12- body = @zip . string
13- begin
14- response = connection . post { |request | request_parameters ( request , body ) }
15- if response . success?
16- nil
17- else
18- response . status == 401 ? I18n . t ( 'tasks.export_external_confirm.not_authorized' , account_link : @account_link . name ) : response . body
19- end
20- rescue StandardError => e
21- e
22- end
12+ response = connection . post { |request | request_parameters ( request , @zip . string ) }
13+ return nil if response . success?
14+ return I18n . t ( 'tasks.export_external_confirm.not_authorized' , account_link : @account_link . name ) if response . status == 401
15+
16+ handle_error ( message : response . body )
17+ rescue Faraday ::ServerError => e
18+ handle_error ( error : e , message : I18n . t ( 'tasks.export_external_confirm.server_error' , account_link : @account_link . name ) )
19+ rescue StandardError => e
20+ handle_error ( error : e )
2321 end
2422
2523 private
2624
25+ def handle_error ( message : nil , error : nil )
26+ Sentry . capture_exception ( error ) if error . present?
27+ ERB ::Util . html_escape ( message || error . to_s )
28+ end
29+
2730 def request_parameters ( request , body )
2831 request . tap do |req |
2932 req . headers [ 'Content-Type' ] = 'application/zip'
@@ -36,6 +39,8 @@ def request_parameters(request, body)
3639 def connection
3740 Faraday . new ( url : @account_link . push_url ) do |faraday |
3841 faraday . adapter Faraday . default_adapter
42+ faraday . options [ :open_timeout ] = 5
43+ faraday . options [ :timeout ] = 5
3944 end
4045 end
4146 end
0 commit comments