Class: RailsDrips::Delivery

Inherits:
ApplicationRecord show all
Includes:
JsonData
Defined in:
app/models/rails_drips/delivery.rb

Instance Method Summary collapse

Methods included from JsonData

#data_value

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

Returns:

  • (Boolean)


32
# File 'app/models/rails_drips/delivery.rb', line 32

def cancelled? = status_cancelled?

#failed?Boolean

Returns:

  • (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: message.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: provider_message_id
  )
end

#scheduled?Boolean

Returns:

  • (Boolean)


28
# File 'app/models/rails_drips/delivery.rb', line 28

def scheduled? = status_scheduled?

#sending?Boolean

Returns:

  • (Boolean)


29
# File 'app/models/rails_drips/delivery.rb', line 29

def sending? = status_sending?

#sent?Boolean

Returns:

  • (Boolean)


30
# File 'app/models/rails_drips/delivery.rb', line 30

def sent? = status_sent?