ringcentral-sdk 0.9.4 → 0.9.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0e9ec214fa6cb168e753cf367afc4fab5ece8a4d
4
- data.tar.gz: 7618f9fca3c507b3ecf791ffb888d52bad222561
2
+ SHA256:
3
+ metadata.gz: 1540372aa98b7028d885a28cc968a3348cf39c19611e2d86dbbcd67e115152bd
4
+ data.tar.gz: d6e4c9cbacec4d74422b2c692ac0f99e4213191e7ec47e43d5205776b1c60808
5
5
  SHA512:
6
- metadata.gz: 0c120833dbf80291b4e32e14e545b40a29b3d37a53d6bc387617f0d52df9ef42b6df32dd1e4af299740207597797c62eac11474e4e5c7a03fe341ee8b706ca91
7
- data.tar.gz: c6e5688b6510026d740fb31a006c2f0613b4a0fe99a3a5847a1544812bf7ddfd1153df0fd9c0d692e42fe1d1c86c79df5dbebbd299acab2f4b9e46475e73a973
6
+ metadata.gz: accae1e8fa5df89849746124c4f5f51587b7c9d67c4bf8498d5c726bbc541719a2b2117aa278535271cba3ddc0602b76827140a6a2bc25fec3a4fae1613eecef
7
+ data.tar.gz: ba5d969dabb7b891f2b22597097388e2c7a08dff9262dcd209be7bdbaa9da49c35ce18b48502fb982889c4a7a138128e79c9e2c6ecdcebbcccb41c9cc5ca8676
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # RingCentral SDK for Ruby
2
2
 
3
- [![Build Status](https://travis-ci.org/ringcentral/ringcentral-ruby.svg?branch=master)](https://travis-ci.org/ringcentral/ringcentral-ruby)
4
- [![Coverage Status](https://coveralls.io/repos/github/ringcentral/ringcentral-ruby/badge.svg?branch=master)](https://coveralls.io/github/ringcentral/ringcentral-ruby?branch=master)
5
- [![Community](https://img.shields.io/badge/dynamic/json.svg?label=community&colorB=&suffix=%20users&query=$.approximate_people_count&uri=http%3A%2F%2Fapi.getsatisfaction.com%2Fcompanies%2F102909.json)](https://devcommunity.ringcentral.com/ringcentraldev)
3
+ [![Ruby](https://github.com/ringcentral/ringcentral-ruby/actions/workflows/ruby.yml/badge.svg)](https://github.com/ringcentral/ringcentral-ruby/actions/workflows/ruby.yml)
6
4
  [![Twitter](https://img.shields.io/twitter/follow/ringcentraldevs.svg?style=social&label=follow)](https://twitter.com/RingCentralDevs)
7
5
 
8
6
  __[RingCentral Developers](https://developer.ringcentral.com/api-products)__ is a cloud communications platform which can be accessed via more than 70 APIs. The platform's main capabilities include technologies that enable:
@@ -10,6 +8,12 @@ __[Voice](https://developer.ringcentral.com/api-products/voice), [SMS/MMS](https
10
8
 
11
9
  [API Reference](https://developer.ringcentral.com/api-docs/latest/index.html) and [APIs Explorer](https://developer.ringcentral.com/api-explorer/latest/index.html).
12
10
 
11
+
12
+ ## Getting help and support
13
+
14
+ If you are having difficulty using this SDK, or working with the RingCentral API, please visit our [developer community forums](https://community.ringcentral.com/spaces/144/) for help and to get quick answers to your questions. If you wish to contact the RingCentral Developer Support team directly, please [submit a help ticket](https://developers.ringcentral.com/support/create-case) from our developer website.
15
+
16
+
13
17
  ## Installation
14
18
 
15
19
  ```
@@ -19,11 +23,11 @@ gem install ringcentral-sdk
19
23
 
20
24
  ### Name collision with `ringcentral` gem
21
25
 
22
- The ringcentral gem is using RingCentral's legacy API, everyone is recommended to move to the REST API.
26
+ The `ringcentral` gem is using RingCentral's legacy API which was End-of-Lifed in 2018. Everyone is recommended to move to the REST API.
23
27
 
24
- If you have both the ringcentral and ringcentral-sdk gems installed, you will run into a collision error when attempting to initialize the ringcentral-sdk RingCentral SDK.
28
+ If you have both the `ringcentral` and `ringcentral-sdk` gems installed, you will run into a collision error when attempting to initialize the `ringcentral-sdk` RingCentral SDK.
25
29
 
26
- Solution is `gem uninstall ringcentral`
30
+ The solution is `gem uninstall ringcentral`
27
31
 
28
32
 
29
33
  ## Documentation
@@ -57,12 +61,14 @@ rc.get('/restapi/v1.0/account/~/extension', { hello: 'world' })
57
61
  ### for post, put & patch
58
62
 
59
63
  ```ruby
60
- rc.post('/restapi/v1.0/account/~/extension/~/sms', body, { hello: 'world' })
64
+ rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: body, params: { hello: 'world' })
61
65
  ```
62
66
 
63
67
  ### multi-value query parameter
64
68
 
69
+ ```ruby
65
70
  rc.get('/restapi/v1.0/account/~/extension', { hello: ['world1', 'world2'] })
71
+ ```
66
72
 
67
73
  Above will be translated to `/restapi/v1.0/account/~/extension?hello=world1&hello=world2`.
68
74
 
@@ -79,7 +85,13 @@ Let's say you already have a token. Then you can load it like this: `rc.token =
79
85
 
80
86
  The benifits of loading a preexisting token is you don't need to go through any authorization flow.
81
87
 
82
- If what you have is a string instead of a Ruby object, you need to convert it first: `JSON.parse(your_token_string)`.
88
+ If what you have is a JSON string instead of a Ruby object, you need to convert it first: `JSON.parse(your_token_string)`.
89
+
90
+ If you only have a string for the access token instead of for the whole object, you can set it like this:
91
+
92
+ ```ruby
93
+ rc.token = { access_token: 'the token string' }
94
+ ```
83
95
 
84
96
 
85
97
  ### Send SMS
data/lib/ringcentral.rb CHANGED
@@ -45,13 +45,21 @@ class RingCentral
45
45
  end
46
46
  end
47
47
 
48
- def authorize(username: nil, extension: nil, password: nil, auth_code: nil, redirect_uri: nil)
48
+ def authorize(username: nil, extension: nil, password: nil, auth_code: nil, redirect_uri: nil, jwt: nil, verifier: nil)
49
49
  if auth_code != nil
50
50
  payload = {
51
51
  grant_type: 'authorization_code',
52
52
  code: auth_code,
53
53
  redirect_uri: redirect_uri,
54
54
  }
55
+ if verifier != nil
56
+ payload["code_verifier"] = verifier
57
+ end
58
+ elsif jwt != nil
59
+ payload = {
60
+ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
61
+ assertion: jwt
62
+ }
55
63
  else
56
64
  payload = {
57
65
  grant_type: 'password',
@@ -83,7 +91,7 @@ class RingCentral
83
91
  self.post('/restapi/oauth/revoke', payload: payload)
84
92
  end
85
93
 
86
- def authorize_uri(redirect_uri, state = '')
94
+ def authorize_uri(redirect_uri, state = '', challenge = nil, challenge_method = 'S256')
87
95
  uri = Addressable::URI.parse(@server) + '/restapi/oauth/authorize'
88
96
  uri.query_values = {
89
97
  response_type: 'code',
@@ -91,6 +99,10 @@ class RingCentral
91
99
  redirect_uri: redirect_uri,
92
100
  client_id: @client_id
93
101
  }
102
+ if challenge != nil
103
+ uri.query_values["code_challenge"] = challenge
104
+ uri.query_values["code_challenge_method"] = challenge_method
105
+ end
94
106
  uri.to_s
95
107
  end
96
108
 
data/lib/subscription.rb CHANGED
@@ -2,6 +2,7 @@ require 'pubnub'
2
2
  require 'concurrent'
3
3
  require 'openssl'
4
4
  require 'base64'
5
+ require 'securerandom'
5
6
 
6
7
  class PubNub
7
8
  attr_accessor :events
@@ -48,7 +49,7 @@ class PubNub
48
49
  def subscribe
49
50
  r = @rc.post('/restapi/v1.0/subscription', payload: request_body)
50
51
  self.subscription = r.body
51
- @pubnub = Pubnub.new(subscribe_key: @subscription['deliveryMode']['subscriberKey'])
52
+ @pubnub = Pubnub.new(subscribe_key: @subscription['deliveryMode']['subscriberKey'], uuid: SecureRandom.uuid)
52
53
  @pubnub.add_listener(name: 'default', callback: @callback)
53
54
  @pubnub.subscribe(channels: @subscription['deliveryMode']['address'])
54
55
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'ringcentral-sdk'
3
- gem.version = '0.9.4'
3
+ gem.version = '0.9.6'
4
4
  gem.authors = ['Tyler Liu']
5
5
  gem.email = ['tyler.liu@ringcentral.com']
6
6
  gem.description = 'Ruby SDK for you to access RingCentral platform API.'
@@ -13,9 +13,9 @@ Gem::Specification.new do |gem|
13
13
  gem.files += Dir['lib/**/*.rb']
14
14
  gem.test_files = Dir['spec/**/*.rb']
15
15
 
16
- gem.add_dependency('addressable', '~> 2.6', '>= 2.6.0')
17
- gem.add_dependency('concurrent-ruby', '~> 1.1', '>= 1.1.5')
18
- gem.add_dependency('pubnub', '~> 4.1', '>= 4.1.2')
19
- gem.add_dependency('faraday', '~> 0.15', '>= 0.15.4')
20
- gem.add_dependency('faraday_middleware', '~> 0.13', '>= 0.13.1')
16
+ gem.add_dependency('addressable', '~> 2.8', '>= 2.8.0')
17
+ gem.add_dependency('concurrent-ruby', '~> 1.1', '>= 1.1.9')
18
+ gem.add_dependency('pubnub', '~> 5.0', '>= 5.0.0')
19
+ gem.add_dependency('faraday', '~> 2.1', '>= 2.1.0')
20
+ gem.add_dependency('faraday_middleware', '~> 1.2.0', '>= 1.2.0')
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcentral-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Liu
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-25 00:00:00.000000000 Z
11
+ date: 2022-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.6'
19
+ version: '2.8'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.6.0
22
+ version: 2.8.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '2.6'
29
+ version: '2.8'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.6.0
32
+ version: 2.8.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: concurrent-ruby
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '1.1'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.1.5
42
+ version: 1.1.9
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,67 +49,67 @@ dependencies:
49
49
  version: '1.1'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.1.5
52
+ version: 1.1.9
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: pubnub
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '4.1'
59
+ version: '5.0'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 4.1.2
62
+ version: 5.0.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '4.1'
69
+ version: '5.0'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 4.1.2
72
+ version: 5.0.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: faraday
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '0.15'
79
+ version: '2.1'
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.15.4
82
+ version: 2.1.0
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.15'
89
+ version: '2.1'
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 0.15.4
92
+ version: 2.1.0
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: faraday_middleware
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '0.13'
99
+ version: 1.2.0
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.13.1
102
+ version: 1.2.0
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.13'
109
+ version: 1.2.0
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 0.13.1
112
+ version: 1.2.0
113
113
  description: Ruby SDK for you to access RingCentral platform API.
114
114
  email:
115
115
  - tyler.liu@ringcentral.com
@@ -131,7 +131,7 @@ homepage: https://github.com/ringcentral/ringcentral-ruby
131
131
  licenses:
132
132
  - MIT
133
133
  metadata: {}
134
- post_install_message:
134
+ post_install_message:
135
135
  rdoc_options: []
136
136
  require_paths:
137
137
  - lib
@@ -146,15 +146,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  requirements: []
149
- rubyforge_project:
150
- rubygems_version: 2.5.2.3
151
- signing_key:
149
+ rubygems_version: 3.2.3
150
+ signing_key:
152
151
  specification_version: 4
153
152
  summary: RingCentral Ruby SDK.
154
153
  test_files:
155
- - spec/spec_helper.rb
156
- - spec/ringcentral_spec.rb
157
- - spec/mms_spec.rb
158
154
  - spec/fax_spec.rb
159
- - spec/subscription_spec.rb
155
+ - spec/mms_spec.rb
160
156
  - spec/query_params_spec.rb
157
+ - spec/ringcentral_spec.rb
158
+ - spec/spec_helper.rb
159
+ - spec/subscription_spec.rb