mirror of
https://github.com/docusealco/docuseal.git
synced 2026-06-23 04:10:11 +00:00
47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Submissions
|
|
module AssignDefinedSubmitters
|
|
module_function
|
|
|
|
def call(submission)
|
|
submission.submitters_order = 'preserved'
|
|
|
|
assign_defined_submitters(submission)
|
|
assign_linked_submitters(submission)
|
|
|
|
submission
|
|
end
|
|
|
|
def assign_defined_submitters(submission)
|
|
submission.template.submitters.to_a.select do |item|
|
|
next if item['email'].blank? && item['is_requester'].blank?
|
|
next if submission.submitters.any? { |e| e.uuid == item['uuid'] }
|
|
|
|
submission.submitters.new(
|
|
account_id: submission.account_id,
|
|
uuid: item['uuid'],
|
|
email: item['is_requester'] ? submission.template.author.email : item['email']
|
|
)
|
|
end
|
|
end
|
|
|
|
def assign_linked_submitters(submission)
|
|
submission.template.submitters.to_a.select do |item|
|
|
next if item['linked_to_uuid'].blank?
|
|
next if submission.submitters.any? { |e| e.uuid == item['uuid'] }
|
|
|
|
email = submission.submitters.find { |s| s.uuid == item['linked_to_uuid'] }&.email
|
|
|
|
next unless email
|
|
|
|
submission.submitters.new(
|
|
account_id: submission.account_id,
|
|
uuid: item['uuid'],
|
|
email:
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|