intercom 3.5.10 → 4.1.2
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 +5 -5
- data/.circleci/config.yml +35 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +5 -0
- data/Gemfile +1 -4
- data/README.md +418 -216
- data/RELEASING.md +9 -0
- data/Rakefile +1 -1
- data/changes.txt +141 -0
- data/intercom.gemspec +1 -2
- data/lib/intercom.rb +34 -19
- data/lib/intercom/api_operations/archive.rb +16 -0
- data/lib/intercom/api_operations/delete.rb +4 -1
- data/lib/intercom/api_operations/find.rb +5 -2
- data/lib/intercom/api_operations/find_all.rb +4 -3
- data/lib/intercom/api_operations/list.rb +4 -1
- data/lib/intercom/api_operations/load.rb +4 -2
- data/lib/intercom/api_operations/nested_resource.rb +70 -0
- data/lib/intercom/api_operations/request_hard_delete.rb +12 -0
- data/lib/intercom/api_operations/save.rb +6 -4
- data/lib/intercom/api_operations/scroll.rb +4 -5
- data/lib/intercom/api_operations/search.rb +18 -0
- data/lib/intercom/article.rb +7 -0
- data/lib/intercom/base_collection_proxy.rb +72 -0
- data/lib/intercom/client.rb +66 -18
- data/lib/intercom/client_collection_proxy.rb +17 -39
- data/lib/intercom/collection.rb +7 -0
- data/lib/intercom/company.rb +8 -0
- data/lib/intercom/contact.rb +22 -3
- data/lib/intercom/conversation.rb +5 -0
- data/lib/intercom/data_attribute.rb +7 -0
- data/lib/intercom/deprecated_leads_collection_proxy.rb +22 -0
- data/lib/intercom/deprecated_resources.rb +13 -0
- data/lib/intercom/errors.rb +44 -4
- data/lib/intercom/extended_api_operations/segments.rb +3 -1
- data/lib/intercom/extended_api_operations/tags.rb +3 -1
- data/lib/intercom/lead.rb +21 -0
- data/lib/intercom/lib/typed_json_deserializer.rb +42 -37
- data/lib/intercom/note.rb +4 -0
- data/lib/intercom/request.rb +162 -95
- data/lib/intercom/scroll_collection_proxy.rb +38 -42
- data/lib/intercom/search_collection_proxy.rb +47 -0
- data/lib/intercom/section.rb +23 -0
- data/lib/intercom/segment.rb +4 -0
- data/lib/intercom/service/article.rb +20 -0
- data/lib/intercom/service/base_service.rb +13 -0
- data/lib/intercom/service/collection.rb +24 -0
- data/lib/intercom/service/company.rb +4 -2
- data/lib/intercom/service/contact.rb +29 -6
- data/lib/intercom/service/conversation.rb +23 -2
- data/lib/intercom/service/data_attribute.rb +20 -0
- data/lib/intercom/service/event.rb +12 -0
- data/lib/intercom/service/lead.rb +41 -0
- data/lib/intercom/service/note.rb +4 -8
- data/lib/intercom/service/section.rb +7 -0
- data/lib/intercom/service/tag.rb +8 -8
- data/lib/intercom/service/team.rb +17 -0
- data/lib/intercom/service/user.rb +4 -2
- data/lib/intercom/service/visitor.rb +15 -6
- data/lib/intercom/tag.rb +4 -0
- data/lib/intercom/team.rb +7 -0
- data/lib/intercom/traits/api_resource.rb +48 -27
- data/lib/intercom/traits/dirty_tracking.rb +8 -1
- data/lib/intercom/user.rb +12 -3
- data/lib/intercom/utils.rb +13 -2
- data/lib/intercom/version.rb +1 -1
- data/lib/intercom/visitor.rb +0 -2
- data/spec/spec_helper.rb +881 -436
- data/spec/unit/intercom/admin_spec.rb +2 -2
- data/spec/unit/intercom/article_spec.rb +40 -0
- data/spec/unit/intercom/base_collection_proxy_spec.rb +30 -0
- data/spec/unit/intercom/client_collection_proxy_spec.rb +41 -41
- data/spec/unit/intercom/client_spec.rb +76 -9
- data/spec/unit/intercom/collection_spec.rb +32 -0
- data/spec/unit/intercom/company_spec.rb +29 -21
- data/spec/unit/intercom/contact_spec.rb +365 -29
- data/spec/unit/intercom/conversation_spec.rb +70 -7
- data/spec/unit/intercom/count_spec.rb +4 -4
- data/spec/unit/intercom/data_attribute_spec.rb +40 -0
- data/spec/unit/intercom/deprecated_leads_collection_proxy_spec.rb +17 -0
- data/spec/unit/intercom/event_spec.rb +25 -8
- data/spec/unit/intercom/job_spec.rb +24 -24
- data/spec/unit/intercom/lead_spec.rb +57 -0
- data/spec/unit/intercom/lib/flat_store_spec.rb +22 -20
- data/spec/unit/intercom/message_spec.rb +1 -1
- data/spec/unit/intercom/note_spec.rb +4 -10
- data/spec/unit/intercom/request_spec.rb +150 -9
- data/spec/unit/intercom/scroll_collection_proxy_spec.rb +40 -39
- data/spec/unit/intercom/search_collection_proxy_spec.rb +60 -0
- data/spec/unit/intercom/section_spec.rb +32 -0
- data/spec/unit/intercom/segment_spec.rb +2 -2
- data/spec/unit/intercom/subscription_spec.rb +5 -6
- data/spec/unit/intercom/tag_spec.rb +22 -14
- data/spec/unit/intercom/team_spec.rb +21 -0
- data/spec/unit/intercom/traits/api_resource_spec.rb +129 -47
- data/spec/unit/intercom/user_spec.rb +227 -217
- data/spec/unit/intercom/visitor_spec.rb +49 -0
- data/spec/unit/intercom_spec.rb +5 -3
- metadata +63 -26
- data/.travis.yml +0 -6
- data/lib/intercom/extended_api_operations/users.rb +0 -16
- data/spec/unit/intercom/visitors_spec.rb +0 -61
data/RELEASING.md
ADDED
data/Rakefile
CHANGED
data/changes.txt
CHANGED
@@ -1,3 +1,144 @@
|
|
1
|
+
4.1.1
|
2
|
+
- Fixed bug with deprecated lead resource.
|
3
|
+
|
4
|
+
4.1.0
|
5
|
+
- Added support for new Articles API.
|
6
|
+
- Added support for new Collections API.
|
7
|
+
- Added support for new Sections API.
|
8
|
+
- Added support to equate two resources.
|
9
|
+
- Fixed issue for dirty tracking nested typed objects.
|
10
|
+
|
11
|
+
4.0.1
|
12
|
+
- Fixed bug with nested resources.
|
13
|
+
- Support for add/remove contact on conversation object.
|
14
|
+
|
15
|
+
4.0.0
|
16
|
+
New version to support API version 2.0.
|
17
|
+
- Added support for new Contacts API.
|
18
|
+
- Added support for Conversation Search and for Conversation model changes.
|
19
|
+
- New DataAttribute class to support the Data Attributes. See README for details on usage.
|
20
|
+
- New method to run assignment rules on a conversation: `intercom.conversations.run_assignment_rules(<convo_id>)`.
|
21
|
+
- See Migration guide for breaking changes: https://github.com/intercom/intercom-ruby/wiki/Migration-guide-for-v4
|
22
|
+
|
23
|
+
3.9.5
|
24
|
+
Add Unstable version support
|
25
|
+
|
26
|
+
3.9.4
|
27
|
+
Add handling for Gateway Timeouts
|
28
|
+
|
29
|
+
3.9.3
|
30
|
+
Fix regression added in 3.9.2
|
31
|
+
|
32
|
+
3.9.2
|
33
|
+
Added error handling for malformed responses
|
34
|
+
|
35
|
+
3.9.1
|
36
|
+
Version skipped in error
|
37
|
+
|
38
|
+
3.9.0
|
39
|
+
Added Teams endpoint functionality
|
40
|
+
|
41
|
+
3.8.1
|
42
|
+
Added error handling for company_not_found
|
43
|
+
|
44
|
+
3.8.0
|
45
|
+
Add support for Customer Search (currently in Unstable API Version)
|
46
|
+
https://developers.intercom.com/intercom-api-reference/v0/reference#customers
|
47
|
+
|
48
|
+
3.7.7
|
49
|
+
Remove deprecated features from Gemspec
|
50
|
+
|
51
|
+
3.7.6
|
52
|
+
Added error handling for invalid_document error state
|
53
|
+
|
54
|
+
3.7.5
|
55
|
+
Added error handling for scroll_exists error state
|
56
|
+
|
57
|
+
3.7.4
|
58
|
+
Added support for API versioning via
|
59
|
+
Intercom::Client.new(token: "token", api_version "1.1")
|
60
|
+
|
61
|
+
3.7.3
|
62
|
+
Added error handling for when an admin cannot be found.
|
63
|
+
|
64
|
+
3.7.2
|
65
|
+
Added error handling for when an app's custom attribute limits have been reached.
|
66
|
+
|
67
|
+
3.7.1
|
68
|
+
Extra version bump after faulty previous bump
|
69
|
+
|
70
|
+
3.7.0
|
71
|
+
Providing the ability to hard delete users as described here:
|
72
|
+
https://developers.intercom.com/intercom-api-reference/reference#archive-a-user
|
73
|
+
|
74
|
+
This chaged the previous delete action to an archive action and added a new hard delete option
|
75
|
+
You can still use the delete method but it will archive a user, we added an alias for delete.
|
76
|
+
#442 archiving alias
|
77
|
+
#410 add ability to hard delete users
|
78
|
+
|
79
|
+
Alos enabling reply to last from the SDK
|
80
|
+
#443 Residently conversations last reply
|
81
|
+
|
82
|
+
3.6.2
|
83
|
+
#384 Add ability to snooze conversation
|
84
|
+
You can now snooze conversations in your app via:
|
85
|
+
intercom.conversations.snooze(...)
|
86
|
+
|
87
|
+
3.6.1
|
88
|
+
#430 Allow all conversations to be listed
|
89
|
+
You can now iterate over all conversations for your app via:
|
90
|
+
intercom.conversations.all.each { |convo| ... }
|
91
|
+
|
92
|
+
3.6.0
|
93
|
+
BREAKING CHANGE companies
|
94
|
+
We updated companies to be able to list users via company_id as well as id (#428 )
|
95
|
+
Note that this is a breaking change as we had to remove the old way of listing users via company.
|
96
|
+
|
97
|
+
Previously it was:
|
98
|
+
intercom.companies.users(company.id)
|
99
|
+
|
100
|
+
Now you get a list of users in a company by Intercom Company ID
|
101
|
+
intercom.companies.users_by_intercom_company_id(company.id)
|
102
|
+
|
103
|
+
Now you get a list of users in a company by external company_id
|
104
|
+
intercom.companies.users_by_company_id(company.company_id)
|
105
|
+
|
106
|
+
Rate limit handling
|
107
|
+
We also improved the way we handle rate limits in PR #409 which was related to issue #405
|
108
|
+
|
109
|
+
3.5.23
|
110
|
+
- New type of error (ResourceNotUniqueError). Thrown when trying to create a resource that already exists in Intercom
|
111
|
+
|
112
|
+
3.5.22
|
113
|
+
- Return object type
|
114
|
+
|
115
|
+
3.5.21
|
116
|
+
- Fix for PR-353 which addressed "NoMethodError in intercom/request"
|
117
|
+
- There were issues on older versions of Ruby (<2.3)
|
118
|
+
- This PR does not use lonely operator and instead simple checks for nil parsed_body
|
119
|
+
|
120
|
+
3.5.17
|
121
|
+
- Fix BlockedUserError typo
|
122
|
+
|
123
|
+
3.5.16
|
124
|
+
- Standardize comparison of attribute as string when input is Hash or JSON
|
125
|
+
|
126
|
+
3.5.15
|
127
|
+
- UnauthorizedError on invalid token
|
128
|
+
- BlockerUserError on restoring blocked user
|
129
|
+
|
130
|
+
3.5.14
|
131
|
+
- Rate Limit Exception (@jaimeiniesta)
|
132
|
+
|
133
|
+
3.5.12
|
134
|
+
- Use base_url in initialize parameter
|
135
|
+
|
136
|
+
3.5.11
|
137
|
+
- Add scroll api for companies
|
138
|
+
|
139
|
+
3.5.10
|
140
|
+
- Add Support for find_all events pagination (@jkeyes)
|
141
|
+
|
1
142
|
3.5.9
|
2
143
|
- Fix event create method
|
3
144
|
|
data/intercom.gemspec
CHANGED
@@ -12,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.summary = %q{Ruby bindings for the Intercom API}
|
13
13
|
spec.description = %Q{Intercom (https://www.intercom.io) is a customer relationship management and messaging tool for web app owners. This library wraps the api provided by Intercom. See http://docs.intercom.io/api for more details. }
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.rubyforge_project = "intercom"
|
16
15
|
|
17
16
|
spec.files = `git ls-files`.split("\n")
|
18
17
|
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -20,12 +19,12 @@ Gem::Specification.new do |spec|
|
|
20
19
|
spec.require_paths = ["lib"]
|
21
20
|
|
22
21
|
spec.add_development_dependency 'minitest', '~> 5.4'
|
22
|
+
spec.add_development_dependency "m", "~> 1.5.0"
|
23
23
|
spec.add_development_dependency 'rake', '~> 10.3'
|
24
24
|
spec.add_development_dependency 'mocha', '~> 1.0'
|
25
25
|
spec.add_development_dependency "fakeweb", ["~> 1.3"]
|
26
26
|
spec.add_development_dependency "pry"
|
27
27
|
|
28
|
-
spec.add_dependency 'json', '>= 1.8'
|
29
28
|
spec.required_ruby_version = '>= 2.1.0'
|
30
29
|
spec.add_development_dependency 'gem-release'
|
31
30
|
end
|
data/lib/intercom.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'intercom/version'
|
2
4
|
require 'intercom/service/admin'
|
5
|
+
require 'intercom/service/article'
|
6
|
+
require 'intercom/service/collection'
|
3
7
|
require 'intercom/service/company'
|
4
8
|
require 'intercom/service/contact'
|
5
9
|
require 'intercom/service/conversation'
|
@@ -10,28 +14,39 @@ require 'intercom/service/note'
|
|
10
14
|
require 'intercom/service/job'
|
11
15
|
require 'intercom/service/subscription'
|
12
16
|
require 'intercom/service/segment'
|
17
|
+
require 'intercom/service/section'
|
13
18
|
require 'intercom/service/tag'
|
14
|
-
require 'intercom/service/
|
19
|
+
require 'intercom/service/team'
|
15
20
|
require 'intercom/service/visitor'
|
21
|
+
require 'intercom/service/user'
|
22
|
+
require 'intercom/service/lead'
|
23
|
+
require 'intercom/deprecated_resources.rb'
|
16
24
|
require 'intercom/options'
|
17
25
|
require 'intercom/client'
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
25
|
-
require
|
26
|
-
require
|
27
|
-
require
|
28
|
-
require
|
29
|
-
require
|
30
|
-
require
|
31
|
-
require
|
32
|
-
require
|
33
|
-
require
|
34
|
-
require
|
26
|
+
require 'intercom/contact'
|
27
|
+
require 'intercom/user'
|
28
|
+
require 'intercom/lead'
|
29
|
+
require 'intercom/count'
|
30
|
+
require 'intercom/collection'
|
31
|
+
require 'intercom/company'
|
32
|
+
require 'intercom/service/data_attribute'
|
33
|
+
require 'intercom/note'
|
34
|
+
require 'intercom/job'
|
35
|
+
require 'intercom/tag'
|
36
|
+
require 'intercom/segment'
|
37
|
+
require 'intercom/section'
|
38
|
+
require 'intercom/event'
|
39
|
+
require 'intercom/conversation'
|
40
|
+
require 'intercom/message'
|
41
|
+
require 'intercom/admin'
|
42
|
+
require 'intercom/article'
|
43
|
+
require 'intercom/request'
|
44
|
+
require 'intercom/subscription'
|
45
|
+
require 'intercom/team'
|
46
|
+
require 'intercom/errors'
|
47
|
+
require 'intercom/visitor'
|
48
|
+
require 'intercom/data_attribute'
|
49
|
+
require 'json'
|
35
50
|
|
36
51
|
##
|
37
52
|
# Intercom is a customer relationship management and messaging tool for web app owners
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'intercom/utils'
|
4
|
+
|
5
|
+
module Intercom
|
6
|
+
module ApiOperations
|
7
|
+
module Archive
|
8
|
+
def archive(object)
|
9
|
+
@client.delete("/#{collection_name}/#{object.id}", {})
|
10
|
+
object
|
11
|
+
end
|
12
|
+
|
13
|
+
alias_method 'delete', 'archive'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,13 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'intercom/utils'
|
2
4
|
|
3
5
|
module Intercom
|
4
6
|
module ApiOperations
|
5
7
|
module Delete
|
6
8
|
def delete(object)
|
7
|
-
collection_name = Utils.resource_class_to_collection_name(collection_class)
|
8
9
|
@client.delete("/#{collection_name}/#{object.id}", {})
|
9
10
|
object
|
10
11
|
end
|
12
|
+
|
13
|
+
alias_method 'archive', 'delete'
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'intercom/utils'
|
2
4
|
|
3
5
|
module Intercom
|
@@ -5,14 +7,15 @@ module Intercom
|
|
5
7
|
module Find
|
6
8
|
def find(params)
|
7
9
|
raise BadRequestError, "#{self}#find takes a hash as its parameter but you supplied #{params.inspect}" unless params.is_a? Hash
|
8
|
-
|
10
|
+
|
9
11
|
if params[:id]
|
10
12
|
id = params.delete(:id)
|
11
13
|
response = @client.get("/#{collection_name}/#{id}", params)
|
12
14
|
else
|
13
15
|
response = @client.get("/#{collection_name}", params)
|
14
16
|
end
|
15
|
-
raise Intercom::HttpError
|
17
|
+
raise Intercom::HttpError, 'Http Error - No response entity returned' unless response
|
18
|
+
|
16
19
|
from_api(response)
|
17
20
|
end
|
18
21
|
end
|
@@ -1,13 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'intercom/client_collection_proxy'
|
2
4
|
require 'intercom/utils'
|
3
5
|
|
4
6
|
module Intercom
|
5
7
|
module ApiOperations
|
6
8
|
module FindAll
|
7
|
-
|
8
9
|
def find_all(params)
|
9
10
|
raise BadRequestError, "#find takes a hash as its parameter but you supplied #{params.inspect}" unless params.is_a? Hash
|
10
|
-
|
11
|
+
|
11
12
|
finder_details = {}
|
12
13
|
if params[:id] && !type_switched_finder?(params)
|
13
14
|
finder_details[:url] = "/#{collection_name}/#{params[:id]}"
|
@@ -16,7 +17,7 @@ module Intercom
|
|
16
17
|
finder_details[:url] = "/#{collection_name}"
|
17
18
|
finder_details[:params] = params
|
18
19
|
end
|
19
|
-
|
20
|
+
collection_proxy_class.new(collection_name, collection_class, details: finder_details, client: @client)
|
20
21
|
end
|
21
22
|
|
22
23
|
private
|
@@ -1,11 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'intercom/client_collection_proxy'
|
4
|
+
require 'intercom/base_collection_proxy'
|
2
5
|
require 'intercom/utils'
|
3
6
|
|
4
7
|
module Intercom
|
5
8
|
module ApiOperations
|
6
9
|
module List
|
7
10
|
def all
|
8
|
-
|
11
|
+
collection_proxy_class.new(collection_name, collection_class, client: @client)
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
@@ -1,16 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'intercom/utils'
|
2
4
|
|
3
5
|
module Intercom
|
4
6
|
module ApiOperations
|
5
7
|
module Load
|
6
8
|
def load(object)
|
7
|
-
collection_name = Utils.resource_class_to_collection_name(collection_class)
|
8
9
|
if object.id
|
9
10
|
response = @client.get("/#{collection_name}/#{object.id}", {})
|
10
11
|
else
|
11
12
|
raise "Cannot load #{collection_class} as it does not have a valid id."
|
12
13
|
end
|
13
|
-
raise Intercom::HttpError
|
14
|
+
raise Intercom::HttpError, 'Http Error - No response entity returned' unless response
|
15
|
+
|
14
16
|
object.from_response(response)
|
15
17
|
end
|
16
18
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Intercom
|
4
|
+
module ApiOperations
|
5
|
+
module NestedResource
|
6
|
+
module ClassMethods
|
7
|
+
def nested_resource_methods(resource,
|
8
|
+
path: nil,
|
9
|
+
operations: nil,
|
10
|
+
resource_plural: nil)
|
11
|
+
resource_plural ||= Utils.pluralize(resource.to_s)
|
12
|
+
path ||= resource_plural
|
13
|
+
raise ArgumentError, 'operations array required' if operations.nil?
|
14
|
+
|
15
|
+
resource_url_method = :"#{resource_plural}_url"
|
16
|
+
|
17
|
+
resource_name = Utils.resource_class_to_collection_name(self)
|
18
|
+
|
19
|
+
define_method(resource_url_method.to_sym) do |id, nested_id = nil|
|
20
|
+
url = "/#{resource_name}/#{id}/#{path}"
|
21
|
+
url += "/#{nested_id}" unless nested_id.nil?
|
22
|
+
url
|
23
|
+
end
|
24
|
+
|
25
|
+
operations.each do |operation|
|
26
|
+
case operation
|
27
|
+
when :create
|
28
|
+
define_method(:"create_#{resource}") do |params|
|
29
|
+
url = send(resource_url_method, self.id)
|
30
|
+
response = client.post(url, params)
|
31
|
+
raise_no_response_error unless response
|
32
|
+
self.class.from_api(response)
|
33
|
+
end
|
34
|
+
when :add
|
35
|
+
define_method(:"add_#{resource}") do |params|
|
36
|
+
url = send(resource_url_method, self.id)
|
37
|
+
response = client.post(url, params)
|
38
|
+
raise_no_response_error unless response
|
39
|
+
self.class.from_api(response)
|
40
|
+
end
|
41
|
+
when :delete
|
42
|
+
define_method(:"remove_#{resource}") do |params|
|
43
|
+
url = send(resource_url_method, self.id, params[:id])
|
44
|
+
response = client.delete(url, params)
|
45
|
+
raise_no_response_error unless response
|
46
|
+
self.class.from_api(response)
|
47
|
+
end
|
48
|
+
when :list
|
49
|
+
define_method(resource_plural.to_sym) do
|
50
|
+
url = send(resource_url_method, self.id)
|
51
|
+
resource_class = Utils.constantize_resource_name(resource.to_s)
|
52
|
+
resource_class.collection_proxy_class.new(resource_plural, resource_class, details: { url: url }, client: client)
|
53
|
+
end
|
54
|
+
else
|
55
|
+
raise ArgumentError, "Unknown operation: #{operation.inspect}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.included(base)
|
62
|
+
base.extend(ClassMethods)
|
63
|
+
end
|
64
|
+
|
65
|
+
private def raise_no_response_error
|
66
|
+
raise Intercom::HttpError, 'Http Error - No response entity returned'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|