intercom 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ecabc64ed0e6223bb4b5af895a49b6dee13fdb5
4
- data.tar.gz: 98f56f0bd24d589be44195af2d8470b469adfdd2
3
+ metadata.gz: d99183b501bb44dbe266b53e79f3f87c19598ec3
4
+ data.tar.gz: 60219b646fe7651c872bb0defc9e519538d76278
5
5
  SHA512:
6
- metadata.gz: ab1db67838ece4aeb6456060bd27b68b7a3762b1840dd5bed9cbeddab2c542eb1dbed37c78a2a0ffd2245601d896a19aac1974b5e79739b0809e3e729bbfc015
7
- data.tar.gz: 74252ee9ad4f610e86d5c37fda98e36911211ba353a14c212347a5d5bf0e54c08999239c21638e59c5f44726242ad9f8b9555875f828459ce2bd7b6f6c563156
6
+ metadata.gz: 75cf2e79bd16fbecd583c1870b88cb6434c2626049b005616b22c9702b8b55dca4eccf32dfcf080fa466b32081b6f14ae4f88156d43af865728ecbd33062ff8f
7
+ data.tar.gz: 6e70470e54a9b0c82e91ff6a598e49ace938ea7504aec800ebb0bf81cf8b710aa495d915b176d862290cf703371f2724c8a1ac967a8bf0a48755470181bde009
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.3.0"
25
+ gem 'intercom', "~> 3.4.0"
26
26
 
27
27
  ## Basic Usage
28
28
 
@@ -30,6 +30,9 @@ Using bundler:
30
30
 
31
31
  ```ruby
32
32
  intercom = Intercom::Client.new(app_id: 'my_app_id', api_key: 'my_api_key')
33
+
34
+ # With an OAuth token:
35
+ intercom = Intercom::Client.new(token: 'my_token')
33
36
  ```
34
37
 
35
38
  You can get your `app_id` from the URL when you're logged into Intercom (it's the alphanumeric just after `/apps/`) and your API key from the API keys integration settings page (under your app settings - integrations in Intercom).
@@ -79,7 +82,7 @@ intercom.users.all.each {|user| puts %Q(#{user.email} - #{user.custom_attributes
79
82
  intercom.users.all.map {|user| user.email }
80
83
 
81
84
  #Bulk operations.
82
- # Submit bulk job, to create users
85
+ # Submit bulk job, to create users, if any of the items in create_items match an existing user that user will be updated
83
86
  intercom.users.submit_bulk_job(create_items: [{user_id: 25, email: "alice@example.com"}, {user_id: 25, email: "bob@example.com"}])
84
87
  # Submit bulk job, to delete users
85
88
  intercom.users.submit_bulk_job(delete_items: [{user_id: 25, email: "alice@example.com"}, {user_id: 25, email: "bob@example.com"}])
@@ -328,7 +331,7 @@ The metadata key values in the example are treated as follows-
328
331
 
329
332
  *NB:* This version of the gem reserves the field name `type` in Event data.
330
333
 
331
- Bulk operations.
334
+ Bulk operations.
332
335
  ```ruby
333
336
  # Submit bulk job, to create events
334
337
  intercom.events.submit_bulk_job(create_items: [
@@ -1,3 +1,6 @@
1
+ 3.4.0
2
+ - Add a "token" keyword for OAuth clients
3
+
1
4
  3.3.0
2
5
  - Add Bulk API support
3
6
 
@@ -1,7 +1,8 @@
1
1
  module Intercom
2
+ class MisconfiguredClientError < StandardError; end
2
3
  class Client
3
4
  include Options
4
- attr_reader :base_url, :rate_limit_details
5
+ attr_reader :base_url, :rate_limit_details, :username_part, :password_part
5
6
 
6
7
  class << self
7
8
  def set_base_url(base_url)
@@ -13,9 +14,16 @@ module Intercom
13
14
  end
14
15
  end
15
16
 
16
- def initialize(app_id: 'my_app_id', api_key: 'my_api_key')
17
- @app_id = app_id
18
- @api_key = api_key
17
+ def initialize(app_id: 'my_app_id', api_key: 'my_api_key', token: nil)
18
+ if token
19
+ @username_part = token
20
+ @password_part = ""
21
+ else
22
+ @username_part = app_id
23
+ @password_part = api_key
24
+ end
25
+ validate_credentials!
26
+
19
27
  @base_url = 'https://api.intercom.io'
20
28
  @rate_limit_details = {}
21
29
  end
@@ -90,8 +98,13 @@ module Intercom
90
98
 
91
99
  private
92
100
 
101
+ def validate_credentials!
102
+ error = MisconfiguredClientError.new("app_id and api_key must not be nil")
103
+ fail error if @username_part.nil?
104
+ end
105
+
93
106
  def execute_request(request)
94
- result = request.execute(@base_url, username: @app_id, secret: @api_key)
107
+ result = request.execute(@base_url, username: @username_part, secret: @password_part)
95
108
  @rate_limit_details = request.rate_limit_details
96
109
  result
97
110
  end
@@ -11,6 +11,7 @@ module Intercom
11
11
  include ApiOperations::List
12
12
  include ApiOperations::Find
13
13
  include ApiOperations::FindAll
14
+ include ApiOperations::Delete
14
15
 
15
16
  def collection_class
16
17
  Intercom::Tag
@@ -1,3 +1,3 @@
1
1
  module Intercom #:nodoc:
2
- VERSION = "3.3.0"
2
+ VERSION = "3.4.0"
3
3
  end
@@ -17,5 +17,16 @@ module Intercom
17
17
  client.base_url.must_equal('https://api.intercom.io')
18
18
  end
19
19
 
20
+ it 'should raise on nil credentials' do
21
+ proc { Client.new(app_id: nil, api_key: nil) }.must_raise MisconfiguredClientError
22
+ end
23
+
24
+ describe 'OAuth clients' do
25
+ it 'supports "token"' do
26
+ client = Client.new(token: 'foo')
27
+ client.username_part.must_equal('foo')
28
+ client.password_part.must_equal('')
29
+ end
30
+ end
20
31
  end
21
32
  end
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.3.0
4
+ version: 3.4.0
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: 2015-12-10 00:00:00.000000000 Z
18
+ date: 2016-02-11 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: minitest
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  version: '0'
222
222
  requirements: []
223
223
  rubyforge_project: intercom
224
- rubygems_version: 2.2.3
224
+ rubygems_version: 2.2.5
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: Ruby bindings for the Intercom API
@@ -246,3 +246,4 @@ test_files:
246
246
  - spec/unit/intercom/traits/api_resource_spec.rb
247
247
  - spec/unit/intercom/user_spec.rb
248
248
  - spec/unit/intercom_spec.rb
249
+ has_rdoc: