Skip to content

Commit 6d4b8b7

Browse files
committed
Save SES message delivery time to submission record
Keep a record of the message delivery time in our database for reference, so it's clear when inspecting submissions with the Rake task whether or not a submission has been delivered.
1 parent 6ede8cb commit 6d4b8b7

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

app/jobs/receive_submission_deliveries_job.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ def process_messages(sqs_client, queue_url, messages)
6060

6161
submission = Submission.find_by!(mail_message_id: ses_message_id)
6262

63-
process_delivery(submission)
63+
delivery_time = Time.zone.parse(ses_message["delivery"]["timestamp"])
64+
process_delivery(submission, delivered_at: delivery_time)
6465
sqs_client.delete_message(queue_url: queue_url, receipt_handle: receipt_handle)
6566

66-
delivery_time = Time.zone.parse(ses_message["delivery"]["timestamp"])
6767
submission_duration_ms = ((delivery_time - submission.created_at) * 1000).round
6868
CloudWatchService.record_submission_delivery_latency_metric(submission_duration_ms, "Email")
6969
rescue StandardError => e
@@ -74,9 +74,11 @@ def process_messages(sqs_client, queue_url, messages)
7474
end
7575
end
7676

77-
def process_delivery(submission)
77+
def process_delivery(submission, **attributes)
7878
set_submission_logging_attributes(submission)
7979

80+
submission.update! attributes
81+
8082
EventLogger.log_form_event("submission_delivered")
8183
end
8284
end

spec/jobs/receive_submission_deliveries_job_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@
111111
))
112112
end
113113

114+
it "saves the submission delivery time to the submission record" do
115+
perform_enqueued_jobs
116+
expect(submission.reload.delivered_at).to eq ses_delivery_timestamp
117+
end
118+
114119
it "sends cloudwatch metric for submission delivery time" do
115120
perform_enqueued_jobs
116121
# latency is ses_delivery_timestamp - submission.created_at

0 commit comments

Comments
 (0)