diff --git a/app/jobs/send_submission_job.rb b/app/jobs/send_submission_job.rb index 5e8dd0020..60bf0a932 100644 --- a/app/jobs/send_submission_job.rb +++ b/app/jobs/send_submission_job.rb @@ -10,15 +10,16 @@ def perform(submission) set_submission_logging_attributes(submission) message_id = AwsSesSubmissionService.new(submission:).submit + sent_at = Time.zone.now submission.update!( mail_message_id: message_id, delivery_status: :pending, - last_delivery_attempt: Time.zone.now, + last_delivery_attempt: sent_at, ) - milliseconds_since_scheduled = (Time.current - scheduled_at_or_enqueued_at).in_milliseconds.round - EventLogger.log_form_event("submission_email_sent", { milliseconds_since_scheduled: }) + milliseconds_since_scheduled = (sent_at - scheduled_at_or_enqueued_at).in_milliseconds.round + LogEventService.log_submission_sent(submission, milliseconds_since_scheduled:) CloudWatchService.record_submission_sent_metric(milliseconds_since_scheduled) rescue StandardError CloudWatchService.record_job_failure_metric(self.class.name) diff --git a/app/services/log_event_service.rb b/app/services/log_event_service.rb index 70851a767..e38e6ecf5 100644 --- a/app/services/log_event_service.rb +++ b/app/services/log_event_service.rb @@ -29,6 +29,19 @@ def self.log_submit(context, requested_email_confirmation:, preview:, submission end end + def self.log_submission_sent(submission, **kwargs) + additional_context = { + submission_type: submission.form.submission_type, + submission_format: submission.form.submission_format, + }.merge(kwargs) + + if submission.preview? + EventLogger.log_form_event("preview_submission_sent", additional_context) + else + EventLogger.log_form_event("submission_sent", additional_context) + end + end + def log_page_save EventLogger.log_page_event(log_event, @step.question.question_text, skipped_question?) if is_starting_form?