From f67db9fe5f379fc50391c9d2819e3f72c2fa56a7 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 10 Apr 2024 13:30:27 +0300 Subject: [PATCH] add field uuid param --- app/controllers/api/submissions_controller.rb | 2 +- app/controllers/api/submitters_controller.rb | 2 +- lib/params/submission_create_validator.rb | 2 +- lib/submissions/create_from_submitters.rb | 6 +++++- lib/submissions/normalize_param_utils.rb | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/submissions_controller.rb b/app/controllers/api/submissions_controller.rb index b96aa420..dd1f8e52 100644 --- a/app/controllers/api/submissions_controller.rb +++ b/app/controllers/api/submissions_controller.rb @@ -169,7 +169,7 @@ module Api submitters: [[:send_email, :send_sms, :completed_redirect_url, :uuid, :name, :email, :role, :completed, :phone, :application_key, :external_id, :reply_to, { metadata: {}, values: {}, readonly_fields: [], message: %i[subject body], - fields: [:name, :default_value, :title, :description, + fields: [:name, :uuid, :default_value, :title, :description, :readonly, :validation_pattern, :invalid_message, { default_value: [] }] }]] } diff --git a/app/controllers/api/submitters_controller.rb b/app/controllers/api/submitters_controller.rb index c6825788..bc715a6e 100644 --- a/app/controllers/api/submitters_controller.rb +++ b/app/controllers/api/submitters_controller.rb @@ -76,7 +76,7 @@ module Api :send_email, :send_sms, :reply_to, :completed_redirect_url, :uuid, :name, :email, :role, :completed, :phone, :application_key, :external_id, { metadata: {}, values: {}, readonly_fields: [], message: %i[subject body], - fields: [[:name, :default_value, :readonly, :validation_pattern, :invalid_message, + fields: [[:name, :uuid, :default_value, :readonly, :validation_pattern, :invalid_message, { default_value: [] }]] } ) end diff --git a/lib/params/submission_create_validator.rb b/lib/params/submission_create_validator.rb index acbe9875..7ea76401 100644 --- a/lib/params/submission_create_validator.rb +++ b/lib/params/submission_create_validator.rb @@ -87,7 +87,7 @@ module Params type(submitter_params, :fields, Array) in_path_each(submitter_params, :fields) do |field_params| - required(field_params, :name) + required(field_params, %i[name uuid]) type(field_params, :name, String) type(field_params, :validation_pattern, String) diff --git a/lib/submissions/create_from_submitters.rb b/lib/submissions/create_from_submitters.rb index d4f4fd92..b62dfae6 100644 --- a/lib/submissions/create_from_submitters.rb +++ b/lib/submissions/create_from_submitters.rb @@ -102,7 +102,11 @@ module Submissions next if f['submitter_uuid'] != submitter_uuid field_configs = fields.find do |e| - e['name'].to_s.casecmp(f['name'].to_s).zero? || e['name'] == f['name'].to_s.parameterize.underscore + if e['name'].present? + e['name'].to_s.casecmp(f['name'].to_s).zero? || e['name'] == f['name'].to_s.parameterize.underscore + else + e['uuid'] == f['uuid'] + end end next if field_configs.blank? diff --git a/lib/submissions/normalize_param_utils.rb b/lib/submissions/normalize_param_utils.rb index 1c919002..88d806a1 100644 --- a/lib/submissions/normalize_param_utils.rb +++ b/lib/submissions/normalize_param_utils.rb @@ -22,7 +22,7 @@ module Submissions default_values = submitter_params[:values] || {} submitter_params[:fields]&.each do |f| - default_values[f[:name]] = f[:default_value] if f.key?(:default_value) + default_values[f[:name].presence || f[:uuid]] = f[:default_value] if f.key?(:default_value) end return submitter_params if default_values.blank?