fix phone value assignment

This commit is contained in:
Pete Matsyburka
2024-04-28 21:43:51 +03:00
parent 2508b5fc8a
commit d5abb46112
2 changed files with 36 additions and 9 deletions
+8 -2
View File
@@ -150,15 +150,21 @@ module Submissions
def build_submitter(submission:, attrs:, uuid:, is_order_sent:, mark_as_sent:, user:, preferences:)
email = Submissions.normalize_email(attrs[:email])
submitter_preferences = Submitters.normalize_preferences(submission.account, user, attrs)
values = attrs[:values] || {}
phone_field_uuid =
(submission.template_fields || submission.template.fields).find do |f|
values[f['uuid']].present? && f['type'] == 'phone'
end&.dig('uuid')
submission.submitters.new(
email:,
phone: attrs[:phone].to_s.gsub(/[^0-9+]/, ''),
phone: (attrs[:phone] || values[phone_field_uuid]).to_s.gsub(/[^0-9+]/, ''),
name: attrs[:name],
external_id: attrs[:external_id].presence || attrs[:application_key],
completed_at: attrs[:completed].present? ? Time.current : nil,
sent_at: mark_as_sent && email.present? && is_order_sent ? Time.current : nil,
values: attrs[:values] || {},
values: values.except(phone_field_uuid),
metadata: attrs[:metadata] || {},
preferences: preferences.merge(submitter_preferences)
.merge({ default_values: attrs[:values] }.compact_blank)