Class: Effective::QbTicket

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/effective/qb_ticket.rb

Constant Summary collapse

STATES =
['Ready', 'Authenticated', 'Processing', 'Finished', 'ConnectionError', 'RequestError']

Instance Method Summary collapse

Instance Method Details

#error!(error, atts = {}) ⇒ Object

This is the entry point for a standard error.



38
39
40
41
42
43
44
45
46
47
48
# File 'app/models/effective/qb_ticket.rb', line 38

def error!(error, atts={})
  Effective::OrdersMailer.order_error(
    order: qb_request.try(:order),
    error: error,
    to: EffectiveQbSync.error_email,
    subject: "Quickbooks failed to synchronize order ##{qb_request.try(:order).try(:to_param) || 'unknown'}",
    template: 'qb_sync_error'
  ).try(:deliver_now).try(:deliver)

  self.update_attributes!(atts.reverse_merge({last_error: error}))
end

#log(message) ⇒ Object

persists a new log message to this ticket



51
52
53
# File 'app/models/effective/qb_ticket.rb', line 51

def log(message)
  qb_logs.create(message: message, qb_ticket: self)
end

#request_error!(error, atts = {}) ⇒ Object



33
34
35
# File 'app/models/effective/qb_ticket.rb', line 33

def request_error!(error, atts={})
  self.error!(error, atts.reverse_merge({state: 'RequestError'}))
end