Class: SesDashboard::Email
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- SesDashboard::Email
- Defined in:
- app/models/ses_dashboard/email.rb
Constant Summary collapse
- STATUSES =
%w[sent delivered bounced complained rejected failed].freeze
- TRANSITIONS =
State-machine transitions applied when SNS events arrive. Only advance; never move backward (e.g., a late delivery event doesn’t overwrite a bounce).
{ "sent" => %w[delivered bounced complained rejected failed], "delivered" => %w[complained], "bounced" => [], "complained" => [], "rejected" => [], "failed" => [] }.freeze
Instance Method Summary collapse
Instance Method Details
#apply_status!(new_status) ⇒ Object
41 42 43 44 45 46 |
# File 'app/models/ses_dashboard/email.rb', line 41 def apply_status!(new_status) return if status == new_status return unless TRANSITIONS.fetch(status, []).include?(new_status) update_column(:status, new_status) end |