@@ -32,7 +32,7 @@ def perform
3232 def set_logging_attributes ( submission :, delivery :)
3333 if delivery . immediate?
3434 set_submission_logging_attributes ( submission :, delivery :)
35- elsif delivery . daily?
35+ elsif delivery . daily? || delivery . weekly?
3636 set_submission_batch_logging_attributes ( form : submission . form , mode : submission . mode_object , delivery :)
3737 end
3838 end
@@ -66,8 +66,14 @@ def process_bounce(delivery, submission, ses_message)
6666 }
6767 end
6868
69- process_immediate_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients ) if delivery . immediate?
70- process_daily_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients ) if delivery . daily?
69+ case delivery . delivery_schedule
70+ when "immediate"
71+ process_immediate_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients )
72+ when "daily"
73+ process_daily_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients )
74+ when "weekly"
75+ process_weekly_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients )
76+ end
7177 end
7278
7379 def process_immediate_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients )
@@ -96,9 +102,27 @@ def process_daily_delivery_bounce(delivery, submission, ses_bounce, bounced_reci
96102 extra : {
97103 form_id : submission . form_id ,
98104 delivery_reference : delivery . delivery_reference ,
105+ delivery_id : delivery . id ,
99106 delivery_schedule : delivery . delivery_schedule ,
107+ batch_begin_at : delivery . batch_begin_at ,
108+ job_id :,
109+ ses_bounce :,
110+ } )
111+ end
112+ end
113+
114+ def process_weekly_delivery_bounce ( delivery , submission , ses_bounce , bounced_recipients )
115+ EventLogger . log_form_event ( "weekly_batch_email_bounced" , ses_bounce : ses_bounce . merge ( bounced_recipients :) )
116+
117+ unless submission . preview?
118+ Sentry . capture_message ( "Weekly submission batch email bounced for form #{ submission . form_id } - #{ self . class . name } :" ,
119+ fingerprint : [ "{{ default }}" , submission . form_id ] ,
120+ extra : {
121+ form_id : submission . form_id ,
122+ delivery_reference : delivery . delivery_reference ,
100123 delivery_id : delivery . id ,
101- batch_date : submission . submission_time . to_date ,
124+ delivery_schedule : delivery . delivery_schedule ,
125+ batch_begin_at : delivery . batch_begin_at ,
102126 job_id :,
103127 ses_bounce :,
104128 } )
@@ -110,6 +134,8 @@ def process_complaint(delivery)
110134 EventLogger . log_form_event ( "submission_complaint" )
111135 elsif delivery . daily?
112136 EventLogger . log_form_event ( "daily_batch_email_complaint" )
137+ elsif delivery . weekly?
138+ EventLogger . log_form_event ( "weekly_batch_email_complaint" )
113139 end
114140 end
115141end
0 commit comments