mirror of https://github.com/docusealco/docuseal
parent
1ad3e45519
commit
990e4020e9
@ -0,0 +1,61 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Submissions
|
||||
module NormalizeParamUtils
|
||||
module_function
|
||||
|
||||
def normalize_submissions_params!(submissions_params, template)
|
||||
attachments = []
|
||||
|
||||
Array.wrap(submissions_params).each do |submission|
|
||||
submission[:submitters].each_with_index do |submitter, index|
|
||||
_, new_attachments = normalize_submitter_params!(submitter, template, index)
|
||||
|
||||
attachments.push(*new_attachments)
|
||||
end
|
||||
end
|
||||
|
||||
[submissions_params, attachments]
|
||||
end
|
||||
|
||||
def normalize_submitter_params!(submitter_params, template, index = nil, for_submitter: nil)
|
||||
default_values = submitter_params[:values] || {}
|
||||
|
||||
submitter_params[:fields]&.each do |f|
|
||||
default_values[f[:name]] = f[:default_value] if f[:default_value].present?
|
||||
end
|
||||
|
||||
return submitter_params if default_values.blank?
|
||||
|
||||
values, new_attachments =
|
||||
Submitters::NormalizeValues.call(template,
|
||||
default_values,
|
||||
submitter_name: submitter_params[:role] ||
|
||||
template.submitters.dig(index, 'name'),
|
||||
for_submitter:,
|
||||
throw_errors: true)
|
||||
|
||||
submitter_params[:values] = values
|
||||
|
||||
[submitter_params, new_attachments]
|
||||
end
|
||||
|
||||
def save_default_value_attachments!(attachments, submitters)
|
||||
return if attachments.blank?
|
||||
|
||||
attachments_index = attachments.index_by(&:uuid)
|
||||
|
||||
submitters.each do |submitter|
|
||||
submitter.values.to_a.each do |_, value|
|
||||
attachment = attachments_index[value]
|
||||
|
||||
next unless attachment
|
||||
|
||||
attachment.record = submitter
|
||||
|
||||
attachment.save!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in new issue