add name and phone to submitter details

This commit is contained in:
Alex Turchyn
2023-09-03 14:05:31 +03:00
parent b1b46cf998
commit a80e20234f
41 changed files with 575 additions and 343 deletions
+6 -11
View File
@@ -13,7 +13,7 @@ module Api
Submissions.create_from_emails(template:,
user: current_user,
source: :api,
send_email: params[:send_email] != 'false',
mark_as_sent: params[:send_email] != 'false',
emails: params[:emails] || params[:email])
else
submissions_attrs = normalize_submissions_params!(submissions_params[:submission], template)
@@ -21,13 +21,13 @@ module Api
Submissions.create_from_submitters(template:,
user: current_user,
source: :api,
send_email: params[:send_email] != 'false',
mark_as_sent: params[:send_email] != 'false',
submissions_attrs:)
end
submitters = submissions.flat_map(&:submitters)
send_invitation_emails(submitters) if params[:send_email] != 'false'
Submitters.send_signature_requests(submitters, send_email: params[:send_email] != 'false')
render json: submitters
rescue UnknownFieldName, UnknownSubmitterName => e
@@ -36,14 +36,8 @@ module Api
private
def send_invitation_emails(submitters)
submitters.each do |submitter|
SubmitterMailer.invitation_email(submitter, message: params[:message]).deliver_later!
end
end
def submissions_params
params.permit(submission: [{ submitters: [[:uuid, :name, :email, { values: {} }]] }])
params.permit(submission: [{ submitters: [[:uuid, :name, :email, :role, :phone, { values: {} }]] }])
end
def normalize_submissions_params!(submissions_params, template)
@@ -53,7 +47,8 @@ module Api
submitter[:values] =
normalize_submitter_values(template,
submitter[:values], submitter[:name] || template.submitters[index]['name'])
submitter[:values],
submitter[:role] || template.submitters[index]['name'])
end
end
+2 -2
View File
@@ -6,7 +6,7 @@ class EmailSettingsController < ApplicationController
def index; end
def create
if @encrypted_config.update(storage_configs)
if @encrypted_config.update(email_configs)
SettingsMailer.smtp_successful_setup(@encrypted_config.value['from_email']).deliver_now!
redirect_to settings_email_index_path, notice: 'Changes have been saved'
@@ -26,7 +26,7 @@ class EmailSettingsController < ApplicationController
EncryptedConfig.find_or_initialize_by(account: current_account, key: EncryptedConfig::EMAIL_SMTP_KEY)
end
def storage_configs
def email_configs
params.require(:encrypted_config).permit(value: {}).tap do |e|
e[:value].compact_blank!
end
@@ -0,0 +1,5 @@
# frozen_string_literal: true
class SmsSettingsController < ApplicationController
def index; end
end
+4 -8
View File
@@ -20,23 +20,19 @@ class SubmissionsController < ApplicationController
Submissions.create_from_emails(template: @template,
user: current_user,
source: :invite,
send_email: params[:send_email] == '1',
mark_as_sent: params[:send_email] == '1',
emails: params[:emails])
else
Submissions.create_from_submitters(template: @template,
user: current_user,
source: :invite,
send_email: params[:send_email] == '1',
mark_as_sent: params[:send_email] == '1',
submissions_attrs: submissions_params[:submission].to_h.values)
end
submitters = submissions.flat_map(&:submitters)
if params[:send_email] == '1'
submitters.each do |submitter|
SubmitterMailer.invitation_email(submitter, message: params[:message]).deliver_later!
end
end
Submitters.send_signature_requests(submitters, params)
redirect_to template_path(@template),
notice: "#{submitters.size} #{'recipient'.pluralize(submitters.size)} added"
@@ -54,7 +50,7 @@ class SubmissionsController < ApplicationController
private
def submissions_params
params.permit(submission: { submitters: [%i[uuid email]] })
params.permit(submission: { submitters: [%i[uuid email phone name]] })
end
def load_template
@@ -0,0 +1,16 @@
# frozen_string_literal: true
class SubmittersSendEmailController < ApplicationController
def create
submitter = Submitter.joins(:template)
.where(template: { account_id: current_account.id })
.find_by!(slug: params[:submitter_slug])
SubmitterMailer.invitation_email(submitter).deliver_later!
submitter.sent_at ||= Time.current
submitter.save!
redirect_back(fallback_location: submission_path(submitter.submission), notice: 'Email has been sent')
end
end