Class: RailsDrips::Delivery
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- RailsDrips::Delivery
- Includes:
- JsonData
- Defined in:
- app/models/rails_drips/delivery.rb
Instance Method Summary collapse
- #cancel!(reason:) ⇒ Object
- #cancelled? ⇒ Boolean
- #failed? ⇒ Boolean
- #mark_failed!(message:) ⇒ Object
- #mark_sending! ⇒ Object
- #mark_sent!(provider: nil, provider_message_id: nil) ⇒ Object
- #scheduled? ⇒ Boolean
- #sending? ⇒ Boolean
- #sent? ⇒ Boolean
Methods included from JsonData
Instance Method Details
#cancel!(reason:) ⇒ Object
34 35 36 37 38 39 40 |
# File 'app/models/rails_drips/delivery.rb', line 34 def cancel!(reason:) update!( status: :cancelled, cancelled_at: Time.current, data: data_value.merge("cancel_reason" => reason.to_s) ) end |
#cancelled? ⇒ Boolean
32 |
# File 'app/models/rails_drips/delivery.rb', line 32 def cancelled? = status_cancelled? |
#failed? ⇒ Boolean
31 |
# File 'app/models/rails_drips/delivery.rb', line 31 def failed? = status_failed? |
#mark_failed!(message:) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'app/models/rails_drips/delivery.rb', line 55 def mark_failed!(message:) update!( status: :failed, failed_at: Time.current, attempts: attempts.to_i + (sending? ? 0 : 1), last_error: .to_s.byteslice(0, 10_000) ) end |
#mark_sending! ⇒ Object
42 43 44 |
# File 'app/models/rails_drips/delivery.rb', line 42 def mark_sending! update!(status: :sending, attempts: attempts.to_i + 1, failed_at: nil, last_error: nil) end |
#mark_sent!(provider: nil, provider_message_id: nil) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'app/models/rails_drips/delivery.rb', line 46 def mark_sent!(provider: nil, provider_message_id: nil) update!( status: :sent, sent_at: Time.current, provider: provider, provider_message_id: ) end |
#scheduled? ⇒ Boolean
28 |
# File 'app/models/rails_drips/delivery.rb', line 28 def scheduled? = status_scheduled? |
#sending? ⇒ Boolean
29 |
# File 'app/models/rails_drips/delivery.rb', line 29 def sending? = status_sending? |
#sent? ⇒ Boolean
30 |
# File 'app/models/rails_drips/delivery.rb', line 30 def sent? = status_sent? |