|  |  | @ -15,21 +15,25 @@ class SendFormCompletedWebhookRequestJob < ApplicationJob | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     ActiveStorage::Current.url_options = Docuseal.default_url_options |  |  |  |     ActiveStorage::Current.url_options = Docuseal.default_url_options | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     resp = Faraday.post(config.value, |  |  |  |     resp = begin | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         { |  |  |  |       Faraday.post(config.value, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           event_type: 'form.completed', |  |  |  |                    { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           timestamp: Time.current, |  |  |  |                      event_type: 'form.completed', | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           data: Submitters::SerializeForWebhook.call(submitter) |  |  |  |                      timestamp: Time.current, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         }.to_json, |  |  |  |                      data: Submitters::SerializeForWebhook.call(submitter) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         'Content-Type' => 'application/json', |  |  |  |                    }.to_json, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         'User-Agent' => USER_AGENT) |  |  |  |                    'Content-Type' => 'application/json', | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                    'User-Agent' => USER_AGENT) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     if resp.status.to_i >= 400 && attempt <= MAX_ATTEMPTS && |  |  |  |     rescue Faraday::TimeoutError | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       nil | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if (resp.nil? || resp.status.to_i >= 400) && attempt <= MAX_ATTEMPTS && | 
			
		
	
		
		
			
				
					
					|  |  |  |        (!Docuseal.multitenant? || submitter.account.account_configs.exists?(key: :plan)) |  |  |  |        (!Docuseal.multitenant? || submitter.account.account_configs.exists?(key: :plan)) | 
			
		
	
		
		
			
				
					
					|  |  |  |       SendFormCompletedWebhookRequestJob.set(wait: (2**attempt).minutes) |  |  |  |       SendFormCompletedWebhookRequestJob.set(wait: (2**attempt).minutes) | 
			
		
	
		
		
			
				
					
					|  |  |  |                                         .perform_later(submitter, { |  |  |  |                                         .perform_later(submitter, { | 
			
		
	
		
		
			
				
					
					|  |  |  |                                                          attempt: attempt + 1, |  |  |  |                                                          attempt: attempt + 1, | 
			
		
	
		
		
			
				
					
					|  |  |  |                                                          last_status: resp.status.to_i |  |  |  |                                                          last_status: resp&.status.to_i | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                                        }) |  |  |  |                                                        }) | 
			
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  |   end |  |  |  |   end | 
			
		
	
	
		
		
			
				
					|  |  | 
 |