diff --git a/app/controllers/api/submissions_controller.rb b/app/controllers/api/submissions_controller.rb index e4428e65..002d96e2 100644 --- a/app/controllers/api/submissions_controller.rb +++ b/app/controllers/api/submissions_controller.rb @@ -121,7 +121,6 @@ module Api template:, user: current_user, source: :api, - mark_as_sent: is_send_email, submitters_order: params[:submitters_order] || params[:order] || 'preserved', submissions_attrs:, params: diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 0de0f789..259521d0 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -39,7 +39,6 @@ class SubmissionsController < ApplicationController user: current_user, source: :invite, submitters_order: params[:preserve_order] == '1' ? 'preserved' : 'random', - mark_as_sent: params[:send_email] == '1', submissions_attrs: submissions_params[:submission].to_h.values, params: params.merge('send_completed_email' => true)) end diff --git a/lib/submissions.rb b/lib/submissions.rb index dfe652ed..83f7ff96 100644 --- a/lib/submissions.rb +++ b/lib/submissions.rb @@ -80,10 +80,10 @@ module Submissions emails end - def create_from_submitters(template:, user:, submissions_attrs:, source:, mark_as_sent: false, + def create_from_submitters(template:, user:, submissions_attrs:, source:, submitters_order: DEFAULT_SUBMITTERS_ORDER, params: {}) Submissions::CreateFromSubmitters.call( - template:, user:, submissions_attrs:, source:, mark_as_sent:, submitters_order:, params: + template:, user:, submissions_attrs:, source:, submitters_order:, params: ) end diff --git a/lib/submissions/create_from_submitters.rb b/lib/submissions/create_from_submitters.rb index db369dc8..77e878ce 100644 --- a/lib/submissions/create_from_submitters.rb +++ b/lib/submissions/create_from_submitters.rb @@ -4,7 +4,7 @@ module Submissions module CreateFromSubmitters module_function - def call(template:, user:, submissions_attrs:, source:, submitters_order:, mark_as_sent: false, params: {}) + def call(template:, user:, submissions_attrs:, source:, submitters_order:, params: {}) preferences = Submitters.normalize_preferences(user.account, user, params) Array.wrap(submissions_attrs).filter_map do |attrs| @@ -32,7 +32,7 @@ module Submissions is_order_sent = submitters_order == 'random' || index.zero? build_submitter(submission:, attrs: submitter_attrs, uuid:, - is_order_sent:, mark_as_sent:, user:, + is_order_sent:, user:, preferences: preferences.merge(submission_preferences)) end @@ -149,7 +149,7 @@ module Submissions uuid || template.submitters[index]&.dig('uuid') end - def build_submitter(submission:, attrs:, uuid:, is_order_sent:, mark_as_sent:, user:, preferences:) + def build_submitter(submission:, attrs:, uuid:, is_order_sent:, user:, preferences:) email = Submissions.normalize_email(attrs[:email]) submitter_preferences = Submitters.normalize_preferences(submission.account, user, attrs) values = attrs[:values] || {} @@ -166,7 +166,6 @@ module Submissions name: attrs[:name], external_id: attrs[:external_id].presence || attrs[:application_key], completed_at: attrs[:completed].present? ? Time.current : nil, - sent_at: mark_as_sent && email.present? && is_order_sent ? Time.current : nil, values: values.except(phone_field_uuid), metadata: attrs[:metadata] || {}, preferences: preferences.merge(submitter_preferences) @@ -175,6 +174,9 @@ module Submissions uuid: ) + submitter.sent_at = + submitter.preferences['send_email'] != false && email.present? && is_order_sent ? Time.current : nil + assign_completed_attributes(submitter) if submitter.completed_at? submitter