Skip to content

Commit e1f5acd

Browse files
committed
Update rake tasks for weekly batch deliveries
1 parent cf9954e commit e1f5acd

File tree

3 files changed

+70
-60
lines changed

3 files changed

+70
-60
lines changed

lib/tasks/submissions.rake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ namespace :submissions do
2121
deliveries.daily.each do |delivery|
2222
Rails.logger.info "Daily batch delivery - delivery_reference: #{delivery.delivery_reference}, created_at: #{delivery.created_at}, last_attempt_at: #{delivery.last_attempt_at}"
2323
end
24+
deliveries.weekly.each do |delivery|
25+
Rails.logger.info "Weekly batch delivery - delivery_reference: #{delivery.delivery_reference}, created_at: #{delivery.created_at}, last_attempt_at: #{delivery.last_attempt_at}"
26+
end
2427
end
2528

2629
desc "Fetch and display all data for a specific submission given a reference"
@@ -52,7 +55,10 @@ namespace :submissions do
5255
Rails.logger.info "Retrying submission with reference #{submission.reference} for form with ID: #{form_id}"
5356
SendSubmissionJob.perform_later(submission)
5457
elsif delivery.daily?
55-
Rails.logger.info "Retrying daily batch delivery with delivery_id: #{delivery.id} for date: #{submission.submission_time.to_date} for form with ID: #{form_id}"
58+
Rails.logger.info "Retrying daily batch delivery with delivery_id: #{delivery.id} for date: #{delivery.batch_begin_at.to_date} for form with ID: #{form_id}"
59+
SendSubmissionBatchJob.perform_later(delivery:)
60+
elsif delivery.weekly?
61+
Rails.logger.info "Retrying weekly batch delivery with delivery_id: #{delivery.id} for week starting: #{delivery.batch_begin_at.to_date} for form with ID: #{form_id}"
5662
SendSubmissionBatchJob.perform_later(delivery:)
5763
end
5864
end

spec/jobs/receive_submission_bounces_and_complaints_job_spec.rb

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -246,20 +246,20 @@
246246
perform_enqueued_jobs
247247

248248
expect(log_lines).to include(hash_including(
249-
"level" => "INFO",
250-
"message" => "Form event",
251-
"event" => "form_daily_batch_email_bounced",
252-
"form_id" => submission.form_id,
253-
"preview" => "false",
254-
"delivery_reference" => delivery_reference,
255-
"delivery_id" => delivery.id,
256-
"delivery_schedule" => "daily",
257-
"batch_begin_at" => delivery.batch_begin_at,
258-
"sqs_message_id" => sqs_message_id,
259-
"sns_message_timestamp" => sns_message_timestamp,
260-
"job_id" => @job_id,
261-
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
262-
))
249+
"level" => "INFO",
250+
"message" => "Form event",
251+
"event" => "form_daily_batch_email_bounced",
252+
"form_id" => submission.form_id,
253+
"preview" => "false",
254+
"delivery_reference" => delivery_reference,
255+
"delivery_id" => delivery.id,
256+
"delivery_schedule" => "daily",
257+
"batch_begin_at" => delivery.batch_begin_at,
258+
"sqs_message_id" => sqs_message_id,
259+
"sns_message_timestamp" => sns_message_timestamp,
260+
"job_id" => @job_id,
261+
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
262+
))
263263
end
264264

265265
it "alerts to Sentry that there was a bounced delivery" do
@@ -281,11 +281,11 @@
281281
perform_enqueued_jobs
282282

283283
expect(log_lines).to include(hash_including(
284-
"level" => "INFO",
285-
"message" => "Form event",
286-
"event" => "form_daily_batch_email_bounced",
287-
"preview" => "true",
288-
))
284+
"level" => "INFO",
285+
"message" => "Form event",
286+
"event" => "form_daily_batch_email_bounced",
287+
"preview" => "true",
288+
))
289289
end
290290

291291
it "does not alert to Sentry" do
@@ -362,14 +362,14 @@
362362
perform_enqueued_jobs
363363

364364
expect(log_lines).to include(hash_including(
365-
"level" => "INFO",
366-
"form_id" => submission.form_id,
367-
"preview" => "false",
368-
"message" => "Form event",
369-
"event" => "form_daily_batch_email_complaint",
370-
"job_id" => @job_id,
371-
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
372-
))
365+
"level" => "INFO",
366+
"form_id" => submission.form_id,
367+
"preview" => "false",
368+
"message" => "Form event",
369+
"event" => "form_daily_batch_email_complaint",
370+
"job_id" => @job_id,
371+
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
372+
))
373373
end
374374
end
375375
end
@@ -406,20 +406,20 @@
406406
perform_enqueued_jobs
407407

408408
expect(log_lines).to include(hash_including(
409-
"level" => "INFO",
410-
"message" => "Form event",
411-
"event" => "form_weekly_batch_email_bounced",
412-
"form_id" => submission.form_id,
413-
"preview" => "false",
414-
"delivery_reference" => delivery_reference,
415-
"delivery_id" => delivery.id,
416-
"delivery_schedule" => "weekly",
417-
"batch_begin_at" => delivery.batch_begin_at,
418-
"sqs_message_id" => sqs_message_id,
419-
"sns_message_timestamp" => sns_message_timestamp,
420-
"job_id" => @job_id,
421-
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
422-
))
409+
"level" => "INFO",
410+
"message" => "Form event",
411+
"event" => "form_weekly_batch_email_bounced",
412+
"form_id" => submission.form_id,
413+
"preview" => "false",
414+
"delivery_reference" => delivery_reference,
415+
"delivery_id" => delivery.id,
416+
"delivery_schedule" => "weekly",
417+
"batch_begin_at" => delivery.batch_begin_at,
418+
"sqs_message_id" => sqs_message_id,
419+
"sns_message_timestamp" => sns_message_timestamp,
420+
"job_id" => @job_id,
421+
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
422+
))
423423
end
424424

425425
it "alerts to Sentry that there was a bounced delivery" do
@@ -441,11 +441,11 @@
441441
perform_enqueued_jobs
442442

443443
expect(log_lines).to include(hash_including(
444-
"level" => "INFO",
445-
"message" => "Form event",
446-
"event" => "form_weekly_batch_email_bounced",
447-
"preview" => "true",
448-
))
444+
"level" => "INFO",
445+
"message" => "Form event",
446+
"event" => "form_weekly_batch_email_bounced",
447+
"preview" => "true",
448+
))
449449
end
450450

451451
it "does not alert to Sentry" do
@@ -522,14 +522,14 @@
522522
perform_enqueued_jobs
523523

524524
expect(log_lines).to include(hash_including(
525-
"level" => "INFO",
526-
"form_id" => submission.form_id,
527-
"preview" => "false",
528-
"message" => "Form event",
529-
"event" => "form_weekly_batch_email_complaint",
530-
"job_id" => @job_id,
531-
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
532-
))
525+
"level" => "INFO",
526+
"form_id" => submission.form_id,
527+
"preview" => "false",
528+
"message" => "Form event",
529+
"event" => "form_weekly_batch_email_complaint",
530+
"job_id" => @job_id,
531+
"job_class" => "ReceiveSubmissionBouncesAndComplaintsJob",
532+
))
533533
end
534534
end
535535
end

spec/lib/tasks/submissions.rake_spec.rb

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
let!(:bounced_submission) { create :submission, :bounced, form_id: }
6666
let!(:another_bounced_submission) { create :submission, :bounced, form_id: }
6767
let!(:bounced_daily_delivery) { create :delivery, :failed, :daily_scheduled_delivery, submissions: [bounced_submission, another_bounced_submission] }
68+
let!(:bounced_weekly_delivery) { create :delivery, :failed, :weekly_scheduled_delivery, submissions: [bounced_submission, another_bounced_submission] }
6869

6970
before do
7071
# create some submissions that won't be matched
@@ -73,10 +74,11 @@
7374
end
7475

7576
it "logs the bounced submissions" do
76-
expect(Rails.logger).to receive(:info).with("Found 3 bounced submission deliveries for form with ID #{form_id}")
77+
expect(Rails.logger).to receive(:info).with("Found 4 bounced submission deliveries for form with ID #{form_id}")
7778
expect(Rails.logger).to receive(:info).with "Immediate delivery - submission reference: #{bounced_submission.reference}, created_at: #{bounced_submission.created_at}, last_attempt_at: #{bounced_submission.single_submission_delivery.last_attempt_at}"
7879
expect(Rails.logger).to receive(:info).with "Immediate delivery - submission reference: #{another_bounced_submission.reference}, created_at: #{another_bounced_submission.created_at}, last_attempt_at: #{another_bounced_submission.single_submission_delivery.last_attempt_at}"
7980
expect(Rails.logger).to receive(:info).with "Daily batch delivery - delivery_reference: #{bounced_daily_delivery.delivery_reference}, created_at: #{bounced_daily_delivery.created_at}, last_attempt_at: #{bounced_daily_delivery.last_attempt_at}"
81+
expect(Rails.logger).to receive(:info).with "Weekly batch delivery - delivery_reference: #{bounced_weekly_delivery.delivery_reference}, created_at: #{bounced_weekly_delivery.created_at}, last_attempt_at: #{bounced_weekly_delivery.last_attempt_at}"
8082
task.invoke(form_id)
8183
end
8284
end
@@ -91,7 +93,8 @@
9193
let(:other_form_id) { 2 }
9294
let!(:bounced_submission) { create :submission, :bounced, form_id: }
9395
let!(:pending_submission) { create :submission, :sent, form_id: }
94-
let!(:bounced_delivery) { create :delivery, :daily_scheduled_delivery, :failed, submissions: [bounced_submission] }
96+
let!(:bounced_daily_delivery) { create :delivery, :daily_scheduled_delivery, :failed, submissions: [bounced_submission] }
97+
let!(:bounced_weekly_delivery) { create :delivery, :weekly_scheduled_delivery, :failed, submissions: [bounced_submission] }
9598

9699
before do
97100
create :submission, :sent, form_id: other_form_id
@@ -102,7 +105,7 @@
102105

103106
it "logs how many deliveries to retry" do
104107
allow(Rails.logger).to receive(:info)
105-
expect(Rails.logger).to receive(:info).with("2 deliveries to retry for form with ID: #{form_id}")
108+
expect(Rails.logger).to receive(:info).with("3 deliveries to retry for form with ID: #{form_id}")
106109

107110
task.invoke(*valid_args)
108111
end
@@ -111,7 +114,8 @@
111114
it "logs submissions that are being retried" do
112115
allow(Rails.logger).to receive(:info)
113116
expect(Rails.logger).to receive(:info).with("Retrying submission with reference #{bounced_submission.reference} for form with ID: #{form_id}")
114-
expect(Rails.logger).to receive(:info).with("Retrying daily batch delivery with delivery_id: #{bounced_delivery.id} for date: #{bounced_submission.submission_time.to_date} for form with ID: #{form_id}")
117+
expect(Rails.logger).to receive(:info).with("Retrying daily batch delivery with delivery_id: #{bounced_daily_delivery.id} for date: #{bounced_daily_delivery.batch_begin_at.to_date} for form with ID: #{form_id}")
118+
expect(Rails.logger).to receive(:info).with("Retrying weekly batch delivery with delivery_id: #{bounced_weekly_delivery.id} for week starting: #{bounced_weekly_delivery.batch_begin_at.to_date} for form with ID: #{form_id}")
115119

116120
task.invoke(*valid_args)
117121
end
@@ -125,7 +129,7 @@
125129
it "enqueues bounced daily deliveries for retrying" do
126130
expect {
127131
task.invoke(*valid_args)
128-
}.to have_enqueued_job.with(delivery: bounced_delivery)
132+
}.to have_enqueued_job.with(delivery: bounced_daily_delivery)
129133
end
130134

131135
it "does not enqueue pending submissions for retrying" do

0 commit comments

Comments
 (0)