intercom 3.5.10 → 3.5.11
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 +1 -1
- data/RELEASING.md +9 -0
- data/changes.txt +3 -0
- data/lib/intercom/api_operations/find_all.rb +1 -1
- data/lib/intercom/service/base_service.rb +6 -0
- data/lib/intercom/service/event.rb +12 -0
- data/lib/intercom/version.rb +1 -1
- data/spec/spec_helper.rb +13 -1
- data/spec/unit/intercom/event_spec.rb +19 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3017e9c7947af1ad08fba93c5d5cd16d4f491b5b
|
4
|
+
data.tar.gz: e34343229866f215a24a1888a5d10164934fe881
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d54158812a58f552cf5bced5b3307d8a0297a9b31c007e29cb38503272813591787f220f613625ff2b01980243a12f5a49771e779a4e457ad4759d4e14e02c10
|
7
|
+
data.tar.gz: 912b3598890f7d1416045ca14fdb1c672cd5e46eba59f799ac09a3c5641498cea4704c826e536c630d867c3ecc377891aedeb6a4c67cf240365db65084b7fb11
|
data/README.md
CHANGED
data/RELEASING.md
ADDED
data/changes.txt
CHANGED
@@ -16,7 +16,7 @@ module Intercom
|
|
16
16
|
finder_details[:url] = "/#{collection_name}"
|
17
17
|
finder_details[:params] = params
|
18
18
|
end
|
19
|
-
|
19
|
+
collection_proxy_class.new(collection_name, finder_details: finder_details, client: @client)
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'intercom/client_collection_proxy'
|
2
|
+
|
1
3
|
module Intercom
|
2
4
|
module Service
|
3
5
|
class BaseService
|
@@ -11,6 +13,10 @@ module Intercom
|
|
11
13
|
raise NotImplementedError
|
12
14
|
end
|
13
15
|
|
16
|
+
def collection_proxy_class
|
17
|
+
Intercom::ClientCollectionProxy
|
18
|
+
end
|
19
|
+
|
14
20
|
def from_api(api_response)
|
15
21
|
object = collection_class.new
|
16
22
|
object.from_response(api_response)
|
@@ -1,8 +1,16 @@
|
|
1
|
+
require 'intercom/client_collection_proxy'
|
1
2
|
require 'intercom/service/base_service'
|
2
3
|
require 'intercom/api_operations/save'
|
3
4
|
require 'intercom/api_operations/bulk/submit'
|
4
5
|
|
5
6
|
module Intercom
|
7
|
+
class EventCollectionProxy < ClientCollectionProxy
|
8
|
+
|
9
|
+
def paging_info_present?(response_hash)
|
10
|
+
!!(response_hash['pages'])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
module Service
|
7
15
|
class Event < BaseService
|
8
16
|
include ApiOperations::FindAll
|
@@ -12,6 +20,10 @@ module Intercom
|
|
12
20
|
def collection_class
|
13
21
|
Intercom::Event
|
14
22
|
end
|
23
|
+
|
24
|
+
def collection_proxy_class
|
25
|
+
Intercom::EventCollectionProxy
|
26
|
+
end
|
15
27
|
end
|
16
28
|
end
|
17
29
|
end
|
data/lib/intercom/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -568,11 +568,23 @@ def test_event_list
|
|
568
568
|
"type" => "event.list",
|
569
569
|
"events" => [ test_event ],
|
570
570
|
"pages" => {
|
571
|
-
"next" => "https
|
571
|
+
"next" => "https://api.intercom.io/events?type=user&intercom_user_id=55a3b&before=144474756550"
|
572
572
|
}
|
573
573
|
}
|
574
574
|
end
|
575
575
|
|
576
|
+
def page_of_events(include_next_link=false)
|
577
|
+
{
|
578
|
+
"type" => "event.list",
|
579
|
+
"events" => [ test_event ],
|
580
|
+
"pages" =>
|
581
|
+
{
|
582
|
+
"next" => (include_next_link ? "https://api.intercom.io/events?type=user&intercom_user_id=55a3b&before=144474756550" : nil),
|
583
|
+
}
|
584
|
+
}
|
585
|
+
end
|
586
|
+
|
587
|
+
|
576
588
|
def error_on_modify_frozen
|
577
589
|
RUBY_VERSION =~ /1.8/ ? TypeError : RuntimeError
|
578
590
|
end
|
@@ -11,6 +11,25 @@ describe "Intercom::Event" do
|
|
11
11
|
client.events.find_all(type: 'user', email: 'joe@example.com').first
|
12
12
|
end
|
13
13
|
|
14
|
+
it "has the correct collection proxy class" do
|
15
|
+
client.events.collection_proxy_class.must_equal Intercom::EventCollectionProxy
|
16
|
+
end
|
17
|
+
|
18
|
+
it "stops iterating if no next link" do
|
19
|
+
client.expects(:get).with("/events", type: 'user', email: 'joe@example.com').returns(page_of_events(false))
|
20
|
+
event_names = []
|
21
|
+
client.events.find_all(type: 'user', email: 'joe@example.com').each { |event| event_names << event.event_name }
|
22
|
+
event_names.must_equal %W(invited-friend)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "keeps iterating if next link" do
|
26
|
+
client.expects(:get).with("/events", type: 'user', email: 'joe@example.com').returns(page_of_events(true))
|
27
|
+
client.expects(:get).with("https://api.intercom.io/events?type=user&intercom_user_id=55a3b&before=144474756550", {}).returns(page_of_events(false))
|
28
|
+
event_names = []
|
29
|
+
client.events.find_all(type: 'user', email: 'joe@example.com').each { |event| event_names << event.event_name }
|
30
|
+
event_names.must_equal %W(invited-friend invited-friend)
|
31
|
+
end
|
32
|
+
|
14
33
|
it "creates an event with metadata" do
|
15
34
|
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)
|
16
35
|
|
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.11
|
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: 2017-
|
18
|
+
date: 2017-02-09 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: minitest
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- Gemfile
|
138
138
|
- MIT-LICENSE
|
139
139
|
- README.md
|
140
|
+
- RELEASING.md
|
140
141
|
- Rakefile
|
141
142
|
- changes.txt
|
142
143
|
- intercom.gemspec
|
@@ -242,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
243
|
version: '0'
|
243
244
|
requirements: []
|
244
245
|
rubyforge_project: intercom
|
245
|
-
rubygems_version: 2.
|
246
|
+
rubygems_version: 2.6.1
|
246
247
|
signing_key:
|
247
248
|
specification_version: 4
|
248
249
|
summary: Ruby bindings for the Intercom API
|
@@ -269,4 +270,3 @@ test_files:
|
|
269
270
|
- spec/unit/intercom/user_spec.rb
|
270
271
|
- spec/unit/intercom/visitors_spec.rb
|
271
272
|
- spec/unit/intercom_spec.rb
|
272
|
-
has_rdoc:
|