refactor and fixes
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@ module Submissions
|
||||
end
|
||||
|
||||
def create_from_emails(template:, user:, emails:, source:, send_email: false)
|
||||
emails = emails.to_s.scan(User::EMAIL_REGEXP)
|
||||
emails = emails.to_s.scan(User::EMAIL_REGEXP) unless emails.is_a?(Array)
|
||||
|
||||
emails.map do |email|
|
||||
submission = template.submissions.new(created_by_user: user, source:)
|
||||
|
||||
@@ -35,6 +35,9 @@ module Submissions
|
||||
|
||||
page = pdf.pages[area['page']]
|
||||
|
||||
page[:Annots] ||= []
|
||||
page[:Annots] = page[:Annots].reject { |e| e[:A] && e[:A][:URI].to_s.starts_with?('file:///docuseal_field') }
|
||||
|
||||
width = page.box.width
|
||||
height = page.box.height
|
||||
font_size = ((page.box.width / A4_SIZE[0].to_f) * FONT_SIZE).to_i
|
||||
@@ -66,8 +69,6 @@ module Submissions
|
||||
height: image.height * scale
|
||||
)
|
||||
when 'file'
|
||||
page[:Annots] ||= []
|
||||
|
||||
items = Array.wrap(value).each_with_object([]) do |uuid, acc|
|
||||
attachment = submitter.attachments.find { |a| a.uuid == uuid }
|
||||
|
||||
|
||||
@@ -11,4 +11,21 @@ module Submitters
|
||||
is_more_than_two_images && original_documents.find { |a| a.uuid == attachment.uuid }&.image?
|
||||
end
|
||||
end
|
||||
|
||||
def create_attachment!(submitter, params)
|
||||
blob =
|
||||
if (file = params[:file])
|
||||
ActiveStorage::Blob.create_and_upload!(io: file.open,
|
||||
filename: file.original_filename,
|
||||
content_type: file.content_type)
|
||||
else
|
||||
ActiveStorage::Blob.find_signed(params[:blob_signed_id])
|
||||
end
|
||||
|
||||
ActiveStorage::Attachment.create!(
|
||||
blob:,
|
||||
name: params[:name],
|
||||
record: submitter
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user