mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									3b745a650d
								
							
						
					
					
						commit
						47c57158f4
					
				| @ -0,0 +1,49 @@ | |||||||
|  | # frozen_string_literal: true | ||||||
|  | 
 | ||||||
|  | module Submitters | ||||||
|  |   module SubmitValues | ||||||
|  |     module_function | ||||||
|  | 
 | ||||||
|  |     def call(submitter, params) | ||||||
|  |       update_submitter!(submitter, params) | ||||||
|  | 
 | ||||||
|  |       Submissions.update_template_fields!(submitter.submission) if submitter.submission.template_fields.blank? | ||||||
|  | 
 | ||||||
|  |       submitter.submission.save! | ||||||
|  | 
 | ||||||
|  |       return unless submitter.completed_at? | ||||||
|  | 
 | ||||||
|  |       GenerateSubmitterResultAttachmentsJob.perform_later(submitter) | ||||||
|  | 
 | ||||||
|  |       if submitter.account.encrypted_configs.exists?(key: EncryptedConfig::WEBHOOK_URL_KEY) | ||||||
|  |         SendWebhookRequestJob.perform_later(submitter) | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       submitter.submission.template.account.users.active.each do |user| | ||||||
|  |         SubmitterMailer.completed_email(submitter, user).deliver_later! | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       submitter | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     def update_submitter!(submitter, params) | ||||||
|  |       submitter.values.merge!(normalized_values(params)) | ||||||
|  |       submitter.completed_at = Time.current if params[:completed] == 'true' | ||||||
|  |       submitter.opened_at ||= Time.current | ||||||
|  | 
 | ||||||
|  |       submitter.save! | ||||||
|  | 
 | ||||||
|  |       submitter | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     def normalized_values(params) | ||||||
|  |       params.fetch(:values, {}).to_unsafe_h.transform_values do |v| | ||||||
|  |         if params[:cast_boolean] == 'true' | ||||||
|  |           v == 'true' | ||||||
|  |         else | ||||||
|  |           v.is_a?(Array) ? v.compact_blank : v | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
					Loading…
					
					
				
		Reference in new issue