Skip to content

Commit bdf828a

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

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
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/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)