intercom 3.5.6 → 3.5.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.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/changes.txt +5 -0
- data/lib/intercom/service/event.rb +1 -0
- data/lib/intercom/traits/api_resource.rb +9 -1
- data/lib/intercom/version.rb +1 -1
- data/spec/spec_helper.rb +24 -0
- data/spec/unit/intercom/event_spec.rb +5 -0
- data/spec/unit/intercom/traits/api_resource_spec.rb +9 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d86ee0111c267589f1aa6def23aa09c6f809621
|
4
|
+
data.tar.gz: 111d6098366a5ddcaa614182fa53bc9319fed8c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6beb6afb91f74bc321c165cb49018a7f1d7640934b0f38a3fa0b00efa925097f2833543f553f5456e7bc692e383b6ce0cfdaa39e5e656d26767b3ccb67427eb7
|
7
|
+
data.tar.gz: f62b9dac85b825b399c46c40f116b404d8542dc12152cecd09cd8ad77b37e38fb504c267b04a5d6b6cd4f6acace3a71bd8db0380e41cdffe7452ab0450a4e6a4
|
data/README.md
CHANGED
@@ -22,7 +22,7 @@ This version of the gem is compatible with `Ruby 2.1` and above.
|
|
22
22
|
|
23
23
|
Using bundler:
|
24
24
|
|
25
|
-
gem 'intercom', "~> 3.5.
|
25
|
+
gem 'intercom', "~> 3.5.6"
|
26
26
|
|
27
27
|
## Basic Usage
|
28
28
|
|
@@ -329,6 +329,8 @@ intercom.events.create(
|
|
329
329
|
}
|
330
330
|
)
|
331
331
|
|
332
|
+
# Retrieve event list for user with id:'123abc'
|
333
|
+
intercom.events.find_all("type" => "user", "intercom_user_id" => "123abc")
|
332
334
|
|
333
335
|
```
|
334
336
|
|
data/changes.txt
CHANGED
@@ -67,7 +67,7 @@ module Intercom
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def set_property(attribute, value)
|
70
|
-
if
|
70
|
+
if typed_property?(attribute, value)
|
71
71
|
value_to_set = Intercom::Lib::TypedJsonDeserializer.new(value).deserialize
|
72
72
|
elsif flat_store_attribute?(attribute)
|
73
73
|
value_to_set = Intercom::Lib::FlatStore.new(value)
|
@@ -89,6 +89,14 @@ module Intercom
|
|
89
89
|
attribute.to_s == 'to' && value.is_a?(Hash) && value['type']
|
90
90
|
end
|
91
91
|
|
92
|
+
def typed_property?(attribute, value)
|
93
|
+
typed_value?(value) &&
|
94
|
+
!custom_attribute_field?(attribute) &&
|
95
|
+
!message_from_field?(attribute, value) &&
|
96
|
+
!message_to_field?(attribute, value) &&
|
97
|
+
attribute != 'metadata'
|
98
|
+
end
|
99
|
+
|
92
100
|
def typed_value?(value)
|
93
101
|
value.is_a? Hash and !!value['type']
|
94
102
|
end
|
data/lib/intercom/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -549,6 +549,30 @@ def test_conversation_count
|
|
549
549
|
}
|
550
550
|
end
|
551
551
|
|
552
|
+
def test_event
|
553
|
+
{
|
554
|
+
"type" => "event",
|
555
|
+
"event_name" => "invited-friend",
|
556
|
+
"created_at" => 1389913941,
|
557
|
+
"user_id" => "314159",
|
558
|
+
"metadata" => {
|
559
|
+
"type" => "user",
|
560
|
+
"invitee_email" => "pi@example.org",
|
561
|
+
"invite_code" => "ADDAFRIEND"
|
562
|
+
}
|
563
|
+
}
|
564
|
+
end
|
565
|
+
|
566
|
+
def test_event_list
|
567
|
+
{
|
568
|
+
"type" => "event.list",
|
569
|
+
"events" => [ test_event ],
|
570
|
+
"pages" => {
|
571
|
+
"next" => "https =>//api.intercom.io/events?type=user&intercom_user_id=55a3b&before=144474756550"
|
572
|
+
}
|
573
|
+
}
|
574
|
+
end
|
575
|
+
|
552
576
|
def error_on_modify_frozen
|
553
577
|
RUBY_VERSION =~ /1.8/ ? TypeError : RuntimeError
|
554
578
|
end
|
@@ -6,6 +6,11 @@ describe "Intercom::Event" do
|
|
6
6
|
let(:created_time) {Time.now - 300}
|
7
7
|
let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
|
8
8
|
|
9
|
+
it 'gets events for a user' do
|
10
|
+
client.expects(:get).with('/events', type: 'user', email: 'joe@example.com').returns(test_event_list)
|
11
|
+
client.events.find_all(type: 'user', email: 'joe@example.com').first
|
12
|
+
end
|
13
|
+
|
9
14
|
it "creates an event with metadata" do
|
10
15
|
client.expects(:post).with('/events', {'event_name' => 'Eventful 1', 'created_at' => created_time.to_i, 'email' => 'joe@example.com', 'metadata' => {'invitee_email' => 'pi@example.org', :invite_code => 'ADDAFRIEND', 'found_date' => 12909364407}}).returns(:status => 202)
|
11
16
|
|
@@ -11,7 +11,11 @@ describe Intercom::Traits::ApiResource do
|
|
11
11
|
"remote_created_at"=>103201,
|
12
12
|
"created_at"=>1374056196,
|
13
13
|
"user_count"=>1,
|
14
|
-
"custom_attributes"=>{}
|
14
|
+
"custom_attributes"=>{},
|
15
|
+
"metadata"=>{
|
16
|
+
"type"=>"user",
|
17
|
+
"color"=>"cyan"
|
18
|
+
}}
|
15
19
|
end
|
16
20
|
let(:api_resource) { DummyClass.new.extend(Intercom::Traits::ApiResource)}
|
17
21
|
|
@@ -29,6 +33,10 @@ describe Intercom::Traits::ApiResource do
|
|
29
33
|
assert_equal Time.at(1374056196), api_resource.created_at
|
30
34
|
end
|
31
35
|
|
36
|
+
it "treats 'metadata' as a plain hash, not a typed object" do
|
37
|
+
assert_equal Hash, api_resource.metadata.class
|
38
|
+
end
|
39
|
+
|
32
40
|
it "dynamically defines accessors when a non-existent property is called that looks like a setter" do
|
33
41
|
api_resource.wont_respond_to :spiders
|
34
42
|
api_resource.spiders = 4
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intercom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben McRedmond
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2016-10-
|
18
|
+
date: 2016-10-26 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: minitest
|
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
version: '0'
|
243
243
|
requirements: []
|
244
244
|
rubyforge_project: intercom
|
245
|
-
rubygems_version: 2.
|
245
|
+
rubygems_version: 2.6.1
|
246
246
|
signing_key:
|
247
247
|
specification_version: 4
|
248
248
|
summary: Ruby bindings for the Intercom API
|