Skip to content

Commit 7b27d24

Browse files
committed
Merge pull request #65 from intercom/user-events-user-object-accepts-email-identifier
add user.email
2 parents bc2dab6 + fbdcbcd commit 7b27d24

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

lib/intercom/user_event.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,23 @@ def save
7676
# Save a list of User Events, with an optional base_user
7777
def self.save_batch_events(events, base_user=nil)
7878
hash = { :type => 'event.list', :data => []}
79-
hash[:user] = { :user_id => base_user.user_id } if base_user
79+
hash[:user] = user_hash(base_user) if base_user
8080
events.each do |event|
8181
hash[:data] << event.event_hash
8282
end
8383
post_to_intercom(hash)
8484
end
85+
86+
def self.user_hash(user)
87+
user.user_id ? { :user_id => user.user_id } : { :email => user.email }
88+
end
8589

8690
def self.post_to_intercom(hash)
8791
Intercom.post('/events', hash)
8892
end
8993

9094
def user_hash
91-
{ :user_id => user.user_id }
95+
UserEvent.user_hash(user)
9296
end
9397

9498
def event_hash

lib/intercom/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module Intercom #:nodoc:
2-
VERSION = "0.2.1"
2+
VERSION = "0.2.2"
33
end

spec/unit/intercom/user_event_spec.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
Intercom.expects(:post).with("/events",
1010
{ :type => 'event.list',
1111
:data => [ {:event_name => "signup", :created => created_time.to_i, :type => 'event',
12-
:user => { :user_id => user.user_id}, :metadata => {:some => "data"}
12+
:user => { :user_id => user.user_id},
1313
}]}).returns(:status => 200)
1414

15-
Intercom::UserEvent.create({ :event_name => "signup", :user => user, :created_at => created_time, :metadata => {:some => "data"} })
15+
Intercom::UserEvent.create({ :event_name => "signup", :user => user, :created_at => created_time })
1616
end
1717

1818
it 'automatically adds a created time upon creation' do
@@ -39,6 +39,17 @@
3939
proc { user_event.save }.must_raise ArgumentError, "Missing User"
4040
end
4141

42+
it 'uses the user.email if no user.id found' do
43+
user2 = Intercom::User.new("email" => "[email protected]", :created_at => Time.now, :name => "Jim Bob")
44+
Intercom.expects(:post).with("/events",
45+
{ :type => 'event.list',
46+
:data => [ {:event_name => "signup", :created => created_time.to_i, :type => 'event',
47+
:user => { :email => user2.email}
48+
}]}).returns(:status => 200)
49+
50+
Intercom::UserEvent.create({ :event_name => "signup", :user => user2, :created_at => created_time })
51+
end
52+
4253
describe 'while batching events' do
4354

4455
let (:event1) do

0 commit comments

Comments
 (0)