ffcrm_cloudfuji 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,8 +21,11 @@ module FatFreeCRM
21
21
  private
22
22
 
23
23
  def note_customer_activity(message)
24
+ # Be verbose in development environment
25
+ @debug = Rails.env == 'development'
26
+
24
27
  subject = find_or_create_activity_subject!
25
- puts "Found subject: #{subject.inspect}"
28
+ puts "Found subject: #{subject.inspect}" if @debug
26
29
 
27
30
  subject.versions.create! :event => message
28
31
  end
@@ -31,24 +34,20 @@ module FatFreeCRM
31
34
  params['data']
32
35
  end
33
36
 
34
- def recipient
35
- data['recipient']
36
- end
37
-
38
37
  def find_or_create_activity_subject!
39
38
  lookups = [Account, Lead, Contact]
40
39
  lookups.each do |model|
41
- puts "#{model}.find_by_email( #{data['email']} )"
40
+ puts "#{model}.find_by_email( #{data['email']} )" if @debug
42
41
  result = model.find_by_email(data['email'])
43
42
  return result if result
44
43
  end
45
44
 
46
- lead = Lead.find_by_email(data['email'])
45
+ lead = Lead.find_by_email(data['email']) || Lead.new
47
46
  lead ||= Lead.new
48
47
 
49
- lead.email = data['email']
50
- lead.first_name ||= data['first_name'] || recipient.split("@").first if lead.first_name.blank?
51
- lead.last_name ||= data['last_name'] || recipient.split("@").last if lead.last_name.blank?
48
+ lead.email = data['email']
49
+ lead.first_name = data['first_name'] || data['email'].split("@").first if lead.first_name.blank?
50
+ lead.last_name = data['last_name'] || data['email'].split("@").last if lead.last_name.blank?
52
51
 
53
52
  lead.save!
54
53
 
@@ -1,5 +1,5 @@
1
1
  module FatFreeCRM
2
2
  module Cloudfuji
3
- VERSION = '0.1.6'
3
+ VERSION = '0.1.7'
4
4
  end
5
5
  end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ include FatFreeCRM::Cloudfuji::EventObservers
4
+
5
+ describe CustomerObserver do
6
+ describe "Customer activity" do
7
+ before do
8
+ @observer = CustomerObserver.new
9
+ @observer.params = {
10
+ "data" => {
11
+ "object" => "customer",
12
+ "account_balance" => 0,
13
+ "email" => "test_lead@example.com",
14
+ "id" => "cus_8Ezl23ASXmAb7Y",
15
+ "created" => 1336871750,
16
+ "livemode" => true,
17
+ "human" => "Customer CREATED (cus_8Ezl23ASXmAb7Y), test_lead@example.com"
18
+ }
19
+ }
20
+ end
21
+
22
+ it "should update a known lead when known customer is created" do
23
+ user = FactoryGirl.create(:user, :ido_id => "1234")
24
+ @lead = FactoryGirl.create(:lead, :email => 'test_lead@example.com', :user => user, :campaign => nil)
25
+
26
+ @observer.customer_created
27
+
28
+ # Should not create a new lead
29
+ Lead.find_all_by_email('test_lead@example.com').size.should == 1
30
+
31
+ @lead.reload
32
+ @lead.versions.last.event.should include("test_lead@example.com created as a customer")
33
+ end
34
+
35
+ it "should create a new lead when unknown customer is created" do
36
+ @observer.customer_created
37
+
38
+ @lead = Lead.find_by_email('test_lead@example.com')
39
+ @lead.first_name.should == "test_lead"
40
+ @lead.last_name.should == "example.com"
41
+ @lead.versions.last.event.should include("test_lead@example.com created as a customer")
42
+ end
43
+ end
44
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffcrm_cloudfuji
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-14 00:00:00.000000000 Z
13
+ date: 2012-05-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec-rails
@@ -122,6 +122,7 @@ files:
122
122
  - lib/fat_free_crm/cloudfuji/version.rb
123
123
  - lib/ffcrm_cloudfuji.rb
124
124
  - spec/event_observers/app_observer_spec.rb
125
+ - spec/event_observers/customer_observer_spec.rb
125
126
  - spec/internal/config/database.yml
126
127
  - spec/internal/db/schema.rb
127
128
  - spec/spec_helper.rb
@@ -140,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
141
  version: '0'
141
142
  segments:
142
143
  - 0
143
- hash: -405230095
144
+ hash: -431378669
144
145
  required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  none: false
146
147
  requirements:
@@ -149,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
150
  version: '0'
150
151
  segments:
151
152
  - 0
152
- hash: -405230095
153
+ hash: -431378669
153
154
  requirements: []
154
155
  rubyforge_project:
155
156
  rubygems_version: 1.8.24