From 80d882cd2048b2bab5a45b0d7507dc3cd204379d Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 24 Mar 2024 14:09:28 +0200 Subject: [PATCH] add reply to param --- app/controllers/api/submissions_controller.rb | 4 ++-- app/mailers/submitter_mailer.rb | 6 +++++- lib/params/submission_create_validator.rb | 2 ++ lib/submitters.rb | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/submissions_controller.rb b/app/controllers/api/submissions_controller.rb index f30afc84..aecd5431 100644 --- a/app/controllers/api/submissions_controller.rb +++ b/app/controllers/api/submissions_controller.rb @@ -161,11 +161,11 @@ module Api def submissions_params permitted_attrs = [ - :send_email, :send_sms, :bcc_completed, :completed_redirect_url, + :send_email, :send_sms, :bcc_completed, :completed_redirect_url, :reply_to, { message: %i[subject body], submitters: [[:send_email, :send_sms, :completed_redirect_url, :uuid, :name, :email, :role, - :completed, :phone, :application_key, :external_id, + :completed, :phone, :application_key, :external_id, :reply_to, { metadata: {}, values: {}, readonly_fields: [], message: %i[subject body], fields: [%i[name default_value title description readonly validation_pattern invalid_message]] }]] diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index c3fe43a4..7454abda 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -30,7 +30,8 @@ class SubmitterMailer < ApplicationMailer to: @submitter.friendly_name, from: from_address_for_submitter(submitter), subject:, - reply_to: (submitter.submission.created_by_user || submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@') + reply_to: submitter.preferences['reply_to'].presence || + (submitter.submission.created_by_user || submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@') ) end @@ -84,6 +85,9 @@ class SubmitterMailer < ApplicationMailer mail(from: from_address_for_submitter(submitter), to: to || @submitter.friendly_name, + reply_to: @submitter.preferences['reply_to'].presence || + (@submitter.submission.created_by_user || + @submitter.template.author)&.friendly_name&.sub(/\+\w+@/, '@'), subject:) end diff --git a/lib/params/submission_create_validator.rb b/lib/params/submission_create_validator.rb index b52328a6..9a7aa2b4 100644 --- a/lib/params/submission_create_validator.rb +++ b/lib/params/submission_create_validator.rb @@ -42,6 +42,7 @@ module Params type(params, :order, String) type(params, :completed_redirect_url, String) type(params, :bcc_completed, String) + type(params, :reply_to, String) type(params, :message, Hash) type(params, :submitters, Array) @@ -69,6 +70,7 @@ module Params required(submitter_params, %i[email phone name]) type(submitter_params, :name, String) + type(submitter_params, :reply_to, String) type(submitter_params, :email, String) format(submitter_params, :email, /@/, message: 'email is invalid') type(submitter_params, :phone, String) diff --git a/lib/submitters.rb b/lib/submitters.rb index 89a4329e..0ed1d77a 100644 --- a/lib/submitters.rb +++ b/lib/submitters.rb @@ -61,6 +61,7 @@ module Submitters preferences['send_email'] = params['send_email'].in?(TRUE_VALUES) if params.key?('send_email') preferences['send_sms'] = params['send_sms'].in?(TRUE_VALUES) if params.key?('send_sms') preferences['bcc_completed'] = params['bcc_completed'] if params.key?('bcc_completed') + preferences['reply_to'] = params['reply_to'] if params.key?('reply_to') preferences['completed_redirect_url'] = params['completed_redirect_url'] if params.key?('completed_redirect_url') preferences