Files
docuseal/lib/submissions/assign_defined_submitters.rb
T

49 lines
1.3 KiB
Ruby
Raw Normal View History

2024-09-08 22:37:58 +03:00
# 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)
2026-07-04 15:47:40 +03:00
Submissions::CreateFromSubmitters.assign_submitters_is_viewer(submission)
2024-09-08 22:37:58 +03:00
submission
end
def assign_defined_submitters(submission)
submission.template.submitters.to_a.select do |item|
next if item['email'].blank? && item['is_requester'].blank?
2024-09-10 09:44:43 +03:00
next if submission.submitters.any? { |e| e.uuid == item['uuid'] }
2024-09-08 22:37:58 +03:00
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?
2024-09-10 09:44:43 +03:00
next if submission.submitters.any? { |e| e.uuid == item['uuid'] }
2024-09-08 22:37:58 +03:00
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