Sha256: 6acfb6b297cddd19f3b5a07ba27230a6c9a7b74373cbeae73a4b93c98c17dca2
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
module Cloudfuji module EventObservers class CustomerObserver < Cloudfuji::EventObserver # "customer_created" # :account_balance => 0 # :object => "customer" # :email => "s+cfdemo@cloudfuji.com" # :created => 1332269951 # :id => "cus_cpkg4h0KfLD3lp" # :livemode => true # :human => "Customer CREATED (cus_cpkg4h0KfLD3lp), s+cfdemo@cloudfuji.com"} def customer_created note_customer_activity("#{data['email']} created as a customer with external id #{data['id']}") if data['livemode'] end def customer_signed_up note_customer_activity("#{data['first_name']} #{data['last_name']} (#{data['email']}) signed up as a customer") end private def note_customer_activity(message) subject = find_or_create_activity_subject! puts "Found subject: #{subject.inspect}" subject.versions.create! :event => message end def data params['data'] end def find_or_create_activity_subject! lookups = [Account, Lead, Contact] lookups.each do |model| puts "#{model}.find_by_email( #{data['email']} )" result = model.find_by_email(data['email']) return result if result end lead = Lead.find_by_email(data['email']) lead ||= Lead.new lead.email = data['email'] lead.first_name ||= data['first_name'] || recipient.split("@").first if lead.first_name.blank? lead.last_name ||= data['last_name'] || recipient.split("@").last if lead.last_name.blank? lead.save lead end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ffcrm_cloudfuji-0.1.1 | lib/fat_free_crm/cloudfuji/event_observers/customer_observer.rb |
ffcrm_cloudfuji-0.1.0 | lib/fat_free_crm/cloudfuji/event_observers/customer_observer.rb |