mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									d52c57df72
								
							
						
					
					
						commit
						4dc325a6bb
					
				| @ -0,0 +1,26 @@ | |||||||
|  | # frozen_string_literal: true | ||||||
|  | 
 | ||||||
|  | module SendWebhookRequest | ||||||
|  |   USER_AGENT = 'DocuSeal.com Webhook' | ||||||
|  | 
 | ||||||
|  |   module_function | ||||||
|  | 
 | ||||||
|  |   def call(webhook_url, event_type:, data:) | ||||||
|  |     Faraday.post(webhook_url.url) do |req| | ||||||
|  |       req.headers['Content-Type'] = 'application/json' | ||||||
|  |       req.headers['User-Agent'] = USER_AGENT | ||||||
|  |       req.headers.merge!(webhook_url.secret.to_h) if webhook_url.secret.present? | ||||||
|  | 
 | ||||||
|  |       req.body = { | ||||||
|  |         event_type: event_type, | ||||||
|  |         timestamp: Time.current, | ||||||
|  |         data: data | ||||||
|  |       }.to_json | ||||||
|  | 
 | ||||||
|  |       req.options.read_timeout = 8 | ||||||
|  |       req.options.open_timeout = 8 | ||||||
|  |     end | ||||||
|  |   rescue Faraday::Error | ||||||
|  |     nil | ||||||
|  |   end | ||||||
|  | end | ||||||
					Loading…
					
					
				
		Reference in new issue