mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
# frozen_string_literal: true
|
|
|
|
module Submitters
|
|
module_function
|
|
|
|
def select_attachments_for_download(submitter)
|
|
original_documents = submitter.submission.template.documents.preload(:blob)
|
|
is_more_than_two_images = original_documents.count(&:image?) > 1
|
|
|
|
submitter.documents.preload(:blob).reject do |attachment|
|
|
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
|
|
|
|
def send_signature_requests(submitters, params)
|
|
return unless params[:send_email] == true || params[:send_email] == '1'
|
|
|
|
submitters.each do |submitter|
|
|
next if submitter.email.blank?
|
|
|
|
SubmitterMailer.invitation_email(submitter, message: params[:message]).deliver_later!
|
|
end
|
|
end
|
|
end
|