adjust submitter edit

This commit is contained in:
Pete Matsyburka
2024-10-08 14:14:24 +03:00
committed by Oleksandr Turchyn
parent e0a297cf81
commit d6474f0e6e
8 changed files with 105 additions and 101 deletions
+26 -23
View File
@@ -6,9 +6,7 @@ class SubmittersController < ApplicationController
def edit
@submitter_email_message =
if @submitter.preferences['email_message_uuid'].present?
@submitter.account
.email_messages
.find_by(uuid: @submitter.preferences['email_message_uuid'])
@submitter.account.email_messages.find_by(uuid: @submitter.preferences['email_message_uuid'])
end
end
@@ -29,13 +27,16 @@ class SubmittersController < ApplicationController
params.delete(:body)
end
assign_preferences(@submitter, params)
submitter_preferences = Submitters.normalize_preferences(@submitter.account, current_user, params)
if submitter_preferences.key?('email_message_uuid')
submitter.preferences['email_message_uuid'] = submitter_preferences['email_message_uuid']
end
assign_submitter_attrs(@submitter, submitter_params)
if @submitter.save
if @submitter.preferences['send_email'] || @submitter.preferences['send_sms']
Submitters.send_signature_requests([@submitter])
end
maybe_resend_email_sms(@submitter, params)
redirect_back fallback_location: submission_path(submission), notice: I18n.t('changes_have_been_saved')
else
@@ -45,6 +46,24 @@ class SubmittersController < ApplicationController
private
def maybe_resend_email_sms(submitter, params)
if params[:send_email] == '1' && submitter.email.present?
is_sent_recently = Docuseal.multitenant? &&
EmailEvent.exists?(email: submitter.email,
tag: 'submitter_invitation',
emailable: submitter,
event_type: 'send',
created_at: 4.hours.ago..Time.current)
SendSubmitterInvitationEmailJob.perform_async('submitter_id' => submitter.id) unless is_sent_recently
end
return if submitter.phone.blank?
return unless params[:send_sms] == '1'
SendSubmitterInvitationSmsJob.perform_async('submitter_id' => submitter.id)
end
def assign_submitter_attrs(submitter, attrs)
submitter.phone = attrs[:phone].to_s.gsub(/[^0-9+]/, '') if attrs.key?(:phone)
@@ -55,22 +74,6 @@ class SubmittersController < ApplicationController
submitter
end
def assign_preferences(submitter, attrs)
submitter_preferences = Submitters.normalize_preferences(submitter.account, current_user, attrs)
if submitter_preferences.key?('send_email')
submitter.preferences['send_email'] = submitter_preferences['send_email']
end
submitter.preferences['send_sms'] = submitter_preferences['send_sms'] if submitter_preferences.key?('send_sms')
if submitter_preferences.key?('email_message_uuid')
submitter.preferences['email_message_uuid'] = submitter_preferences['email_message_uuid']
end
submitter
end
def submitter_params
params.require(:submitter).permit(:email, :name, :phone).transform_values(&:strip)
end