add invite_by

This commit is contained in:
Pete Matsyburka
2025-12-09 11:35:30 +02:00
parent e12ec9d986
commit 7a33444f9b
3 changed files with 16 additions and 4 deletions
+5 -1
View File
@@ -71,7 +71,11 @@ module Params
end
def validate_submitter(submitter_params)
required(submitter_params, %i[email phone name])
if submitter_params['invite_by'].present?
required(submitter_params, :role)
else
required(submitter_params, %i[email phone name])
end
type(submitter_params, :name, String)
type(submitter_params, :reply_to, String)
+10 -2
View File
@@ -81,7 +81,7 @@ module Submissions
next if submission.submitters.blank?
maybe_add_invite_submitters(submission, template)
maybe_add_invite_submitters(submission, template, attrs[:submitters])
submission.template = nil unless with_template
@@ -102,8 +102,16 @@ module Submissions
end
end
def maybe_add_invite_submitters(submission, template)
def maybe_add_invite_submitters(submission, template, submitter_attrs)
template.submitters.each_with_index do |item, index|
submitter_attr = submitter_attrs.find { |e| e['role'].to_s.casecmp?(item['name'].to_s) }
if submitter_attr && submitter_attr['invite_by'].present?
invite_by_uuid = template.submitters.find { |s| s['name'] == submitter_attr['invite_by'] }&.dig('uuid')
item = item.merge('invite_by_uuid' => invite_by_uuid) if invite_by_uuid
end
next if item['invite_by_uuid'].blank? && item['optional_invite_by_uuid'].blank?
next if submission.template_submitters.any? { |e| e['uuid'] == item['uuid'] }