add invite_by
This commit is contained in:
@@ -188,7 +188,7 @@ module Api
|
|||||||
message: %i[subject body],
|
message: %i[subject body],
|
||||||
submitters: [[:send_email, :send_sms, :completed_redirect_url, :uuid, :name, :email, :role,
|
submitters: [[:send_email, :send_sms, :completed_redirect_url, :uuid, :name, :email, :role,
|
||||||
:completed, :phone, :application_key, :external_id, :reply_to, :go_to_last,
|
:completed, :phone, :application_key, :external_id, :reply_to, :go_to_last,
|
||||||
:require_phone_2fa, :order,
|
:require_phone_2fa, :order, :invite_by,
|
||||||
{ metadata: {}, values: {}, roles: [], readonly_fields: [], message: %i[subject body],
|
{ metadata: {}, values: {}, roles: [], readonly_fields: [], message: %i[subject body],
|
||||||
fields: [:name, :uuid, :default_value, :value, :title, :description,
|
fields: [:name, :uuid, :default_value, :value, :title, :description,
|
||||||
:readonly, :required, :validation_pattern, :invalid_message,
|
:readonly, :required, :validation_pattern, :invalid_message,
|
||||||
|
|||||||
@@ -71,7 +71,11 @@ module Params
|
|||||||
end
|
end
|
||||||
|
|
||||||
def validate_submitter(submitter_params)
|
def validate_submitter(submitter_params)
|
||||||
|
if submitter_params['invite_by'].present?
|
||||||
|
required(submitter_params, :role)
|
||||||
|
else
|
||||||
required(submitter_params, %i[email phone name])
|
required(submitter_params, %i[email phone name])
|
||||||
|
end
|
||||||
|
|
||||||
type(submitter_params, :name, String)
|
type(submitter_params, :name, String)
|
||||||
type(submitter_params, :reply_to, String)
|
type(submitter_params, :reply_to, String)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ module Submissions
|
|||||||
|
|
||||||
next if submission.submitters.blank?
|
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
|
submission.template = nil unless with_template
|
||||||
|
|
||||||
@@ -102,8 +102,16 @@ module Submissions
|
|||||||
end
|
end
|
||||||
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|
|
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 item['invite_by_uuid'].blank? && item['optional_invite_by_uuid'].blank?
|
||||||
next if submission.template_submitters.any? { |e| e['uuid'] == item['uuid'] }
|
next if submission.template_submitters.any? { |e| e['uuid'] == item['uuid'] }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user