Class: FatFreeCRM::Cloudfuji::EventObservers::ErrorObserver

Inherits:
Cloudfuji::EventObserver
  • Object
show all
Includes:
ActionView::Helpers::TextHelper, Base
Defined in:
lib/fat_free_crm/cloudfuji/event_observers/error_observer.rb

Instance Method Summary collapse

Methods included from Base

#find_lead_by_data, #find_or_create_activity_subject!

Instance Method Details

#error_caughtObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fat_free_crm/cloudfuji/event_observers/error_observer.rb', line 8

def error_caught
  email = data['email'] || data['recipient']
  # Look up Lead by ido_id, fall back to email address
  if user_attributes = data['user_attributes']
    lead = Lead.find_by_ido_id(user_attributes['ido_id']) if user_attributes['ido_id'].present?
    lead ||= Lead.find_by_email(user_attributes['email'])
    if lead
      # Set ido_id if blank
      user_attributes

      occurence = ActiveSupport::Inflector.ordinalize(data['occurrences'])
      message = "Error experienced in <strong>#{data['app_name']}</strong> [#{data['environment_name']}] (#{occurence} time): "
      message << "<em>" << truncate(data['message'], :length => 75) << "</em>"
      message << "<br />View the error at: #{data['url']}" if data['url']
      lead.versions.create! :event => message
    end
  end
end