mirror of https://github.com/docusealco/docuseal
parent
bd853c6265
commit
be4a0505bc
@ -0,0 +1,52 @@
|
|||||||
|
# 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)
|
||||||
|
|
||||||
|
if submission.submitters.size == 1 && submission.template.submitters.size == 2
|
||||||
|
submission.submitters.new(
|
||||||
|
account_id: submission.account_id,
|
||||||
|
uuid: submission.template.submitters.second['uuid'],
|
||||||
|
email: submission.template.author.email
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
submission
|
||||||
|
end
|
||||||
|
|
||||||
|
def assign_defined_submitters(submission)
|
||||||
|
submission.template.submitters.to_a.select do |item|
|
||||||
|
next if item['email'].blank? && item['is_requester'].blank?
|
||||||
|
|
||||||
|
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?
|
||||||
|
|
||||||
|
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
|
||||||
Loading…
Reference in new issue