ringcentral_sdk 3.0.0 → 3.1.0

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
2
  SHA256:
3
- metadata.gz: 7b4759611557577079618f5bbc1064364479457195d8ff6f467fd08531132517
4
- data.tar.gz: 0d5f363462e4e4915d8a878ed9aa6f423e54f5186d5c586db79f4e11b70478bb
3
+ metadata.gz: 0d7d7bec3a2a5167683da179b619dabe76b73e9feeba8d1c4d141a3135f7f221
4
+ data.tar.gz: 1655a60eaba12760f98425e2a1bd6a5e9f7b88af83425b9043601f7c751d4fa7
5
5
  SHA512:
6
- metadata.gz: 8c2e06de3986a6dc7d86331834521cfa536b23379f66235bd5ea52d0fad06244ade05ff75e4d0597117204dea9f488018d76b9c01f0a9eab5707729aed0c0bff
7
- data.tar.gz: ad0f95ee35ad69875a10718dc7f3a1eaca8e4d57ffc3a5cfcd4139df640a3bf5943c64de7565351fb3ac23a7c9e9b037600d57b71c510471a5d62bfebd1029d3
6
+ metadata.gz: cde3465645b5c8d2d0f6e2e803263b8e2af39706fc839c357c17cc296cb15bdfb2b049350b754ac8707c152906019f9cb82a7d51ac6338a7505ed634d1c629d3
7
+ data.tar.gz: 759da592165de535c34a117540826b0baddbd849b45f06f04066604264c0021d079e849601d56a050e9b1ead5bfa9be941c75f4f55897ca0003881fdfe847460
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
2
 
3
- gemspec
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ringcentral_sdk (2.2.2)
4
+ ringcentral_sdk (3.1.0)
5
5
  dotenv (~> 2.1, >= 2.8.1)
6
6
  faraday (~> 1.10, >= 1.10.3)
7
7
  faraday_middleware (~> 1.2, >= 1.2.0)
@@ -14,7 +14,7 @@ PATH
14
14
  mime_builder (~> 0.1, >= 0.1.1)
15
15
  multi_json (~> 1.3)
16
16
  oauth2 (~> 2.0, >= 2.0.9)
17
- pubnub (~> 5.0, >= 5.2.1)
17
+ pubnub (~> 4.0, >= 4.8.0)
18
18
 
19
19
  GEM
20
20
  remote: https://rubygems.org/
@@ -123,7 +123,7 @@ GEM
123
123
  version_gem (~> 1.1)
124
124
  power_assert (2.0.3)
125
125
  public_suffix (5.0.1)
126
- pubnub (5.2.1)
126
+ pubnub (4.8.0)
127
127
  addressable (>= 2.0.0)
128
128
  concurrent-ruby (~> 1.1.5)
129
129
  concurrent-ruby-edge (~> 0.5.0)
@@ -136,6 +136,7 @@ GEM
136
136
  rest-client (1.6.7)
137
137
  mime-types (>= 1.16)
138
138
  ruby2_keywords (0.0.5)
139
+ rubycop (1.0.1)
139
140
  simplecov (0.22.0)
140
141
  docile (~> 1.1)
141
142
  simplecov-html (~> 0.11)
@@ -164,6 +165,7 @@ DEPENDENCIES
164
165
  mocha (~> 2)
165
166
  rake (~> 13)
166
167
  ringcentral_sdk!
168
+ rubycop (~> 1.0, >= 1.0.1)
167
169
  simplecov (~> 0)
168
170
  test-unit (~> 3)
169
171
 
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2023 John Wang
3
+ Copyright (c) 2015-2024 John Wang
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -37,14 +37,6 @@ RingCentral SDK for Ruby
37
37
 
38
38
  A Ruby SDK for the [RingCentral REST API](https://developers.ringcentral.com).
39
39
 
40
- ## Important Notes
41
-
42
- Version 2.0.0 introduces the following backward breaking changes:
43
-
44
- * SDK instantiation by moving to a block-based configuration
45
- * Removal of `RingCentralSdk::REST::Config` class
46
- * Removal of `RingCentralSdk::REST::Client.authorize_user` method
47
-
48
40
  ## Documentation
49
41
 
50
42
  Full documentation and resources are available at:
@@ -84,14 +76,12 @@ require 'ringcentral_sdk'
84
76
 
85
77
  client = RingCentralSdk::REST::Client.new do |config|
86
78
  # App info (mandatory)
87
- config.app_key = 'myAppKey'
88
- config.app_secret = 'myAppSecret'
79
+ config.client_id = 'myAppClientID'
80
+ config.client_secret = 'myAppClientSecret'
89
81
  config.server_url = RingCentralSdk::RC_SERVER_SANDBOX
90
82
 
91
- # User info for password grant (optional)
92
- config.username = 'myUsername'
93
- config.extension = 'myExtension'
94
- config.password = 'myPassword'
83
+ # JWT Bearer Grant (optional)
84
+ config.jwt = 'myJwt'
95
85
 
96
86
  # Set a custom logger (optional)
97
87
  config.logger = Logger.new(STDOUT)
@@ -197,6 +187,12 @@ sub.subscribe ['/restapi/v1.0/account/~/extension/~/presence']
197
187
  sub.destroy
198
188
  ```
199
189
 
190
+ ### Examples
191
+
192
+ See examples in the [`scripts`](scripts) folder.
193
+
194
+ A simple read only script is `account-extensions.rb` which can be used to validate your app configuration.
195
+
200
196
  ### Advanced Use Cases
201
197
 
202
198
  1. [Subscribing to All Extensions](http://ringcentral-sdk-ruby.readthedocs.org/en/latest/usage/notifications/Subscriptions-All-Extensions/)
@@ -245,18 +241,32 @@ RingCentral Official SDKs
245
241
  4. Push to the branch (`git push origin my-new-feature`)
246
242
  5. Create new Pull Request
247
243
 
244
+ ### Development
245
+
246
+ To build local development copy of the gem use:
247
+
248
+ ```
249
+ % gem build ringcentral_sdk.gemspec
250
+ ```
251
+
252
+ This will produce a file like: `ringcentral_sdk-3.1.0.gem` which you can install with:
253
+
254
+ ```
255
+ % gem install ringcentral_sdk-3.1.0.gem
256
+ ```
257
+
248
258
  ## License
249
259
 
250
- RingCentral SDK is available under an MIT-style license. See [LICENSE.md](LICENSE.md) for details.
260
+ RingCentral SDK is available under the MIT license. See [LICENSE](LICENSE) for details.
251
261
 
252
- RingCentral SDK © 2015-2023 by John Wang
262
+ RingCentral SDK © 2015-2024 by John Wang
253
263
 
254
264
  [gem-version-svg]: https://badge.fury.io/rb/ringcentral_sdk.svg
255
265
  [gem-version-url]: http://badge.fury.io/rb/ringcentral_sdk
256
266
  [downloads-svg]: http://ruby-gem-downloads-badge.herokuapp.com/ringcentral_sdk
257
267
  [downloads-url]: https://rubygems.org/gems/ringcentral_sdk
258
- [build-status-svg]: https://api.travis-ci.org/grokify/ringcentral-sdk-ruby.svg?branch=master
259
- [build-status-url]: https://travis-ci.org/grokify/ringcentral-sdk-ruby
268
+ [build-status-svg]: https://github.com/grokify/ringcentral-sdk-ruby/workflows/test/badge.svg
269
+ [build-status-url]: https://github.com/grokify/ringcentral-sdk-ruby/actions/workflows/test.yaml
260
270
  [coverage-status-svg]: https://coveralls.io/repos/grokify/ringcentral-sdk-ruby/badge.svg?branch=master
261
271
  [coverage-status-url]: https://coveralls.io/r/grokify/ringcentral-sdk-ruby?branch=master
262
272
  [dependency-status-svg]: https://gemnasium.com/grokify/ringcentral-sdk-ruby.svg
@@ -274,7 +284,7 @@ RingCentral SDK © 2015-2023 by John Wang
274
284
  [docs-rubydoc-svg]: https://img.shields.io/badge/docs-rubydoc-blue.svg
275
285
  [docs-rubydoc-url]: http://www.rubydoc.info/gems/ringcentral_sdk/
276
286
  [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
277
- [license-url]: https://github.com/grokify/ringcentral-sdk-ruby/blob/master/LICENSE.md
287
+ [license-url]: https://github.com/grokify/ringcentral-sdk-ruby/blob/master/LICENSE
278
288
  [chat-svg]: https://img.shields.io/badge/chat-on%20glip-orange.svg
279
289
  [chat-url]: https://glipped.herokuapp.com/
280
290
  [stackoverflow-svg]: https://img.shields.io/badge/Stack%20Overflow-ringcentral-orange.svg
@@ -7,11 +7,8 @@ module RingCentralSdk
7
7
  # Extensions cache is a local store that can retrieve all
8
8
  # extensions for use locally
9
9
  class Extensions
10
- attr_accessor :client
11
- attr_accessor :account_id
12
- attr_reader :extensions_hash
13
- attr_reader :extensions_num2id
14
- attr_reader :last_retrieved
10
+ attr_accessor :client, :account_id
11
+ attr_reader :extensions_hash, :extensions_num2id, :last_retrieved
15
12
 
16
13
  def initialize(client)
17
14
  @client = client
@@ -23,12 +23,7 @@ module RingCentralSdk
23
23
  URL_PREFIX = '/restapi'.freeze
24
24
  DEFAULT_LANGUAGE = 'en-us'.freeze
25
25
 
26
- attr_reader :config
27
- attr_reader :http
28
- attr_reader :logger
29
- attr_reader :oauth2client
30
- attr_reader :user_agent
31
- attr_reader :messages
26
+ attr_reader :config, :http, :logger, :messages, :oauth2client, :user_agent
32
27
 
33
28
  def initialize
34
29
  init_attributes
@@ -40,9 +35,12 @@ module RingCentralSdk
40
35
 
41
36
  @oauth2client = new_oauth2_client
42
37
 
43
- unless @config.username.to_s.empty?
44
- authorize_password @config.username, @config.extension, @config.password
45
- end
38
+ # Remove Password Grant
39
+ # unless @config.username.to_s.empty?
40
+ # authorize_password @config.username, @config.extension, @config.password
41
+ # end
42
+
43
+ authorize_jwt(@config.jwt) unless @config.jwt.to_s.empty?
46
44
 
47
45
  @messages = RingCentralSdk::REST::Messages.new self
48
46
  end
@@ -109,11 +107,20 @@ module RingCentralSdk
109
107
  opts
110
108
  end
111
109
 
112
- def authorize_password(username, extension = '', password = '', params = {})
113
- token = @oauth2client.password.get_token(username, password, {
114
- extension: extension,
115
- headers: { 'Authorization' => 'Basic ' + api_key }
116
- }.merge(params))
110
+ # def authorize_password(username, extension = '', password = '', params = {})
111
+ # token = @oauth2client.password.get_token(username, password, {
112
+ # extension: extension,
113
+ # headers: { 'Authorization' => 'Basic ' + api_key }
114
+ # }.merge(params))
115
+ # set_token token
116
+ # token
117
+ # end
118
+
119
+ def authorize_jwt(jwt)
120
+ token = @oauth2client.get_token({
121
+ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
122
+ assertion: jwt
123
+ })
117
124
  set_token token
118
125
  token
119
126
  end
@@ -238,8 +245,10 @@ module RingCentralSdk
238
245
  RingCentralSdk::REST::Subscription.new self
239
246
  end
240
247
 
241
- alias authorize authorize_password
242
- alias login authorize_password
248
+ # alias authorize authorize_password
249
+ # alias login authorize_password
250
+ alias authorize authorize_jwt
251
+ alias login authorize_jwt
243
252
  private :api_version_url
244
253
  end
245
254
  end
@@ -9,22 +9,13 @@ module RingCentralSdk
9
9
  module REST
10
10
  # Configuration class populated by Client constructor block
11
11
  class Configuration
12
- attr_accessor :server_url
13
- attr_accessor :client_id
14
- attr_accessor :client_secret
15
- attr_accessor :redirect_url
16
-
17
- attr_accessor :username
18
- attr_accessor :extension
19
- attr_accessor :password
20
- attr_accessor :token
21
- attr_accessor :token_file
22
-
23
- attr_accessor :load_env
24
- attr_accessor :headers
25
- attr_accessor :retry
26
- attr_accessor :retry_options
27
- attr_accessor :logger
12
+ attr_accessor :server_url,
13
+ :client_id, :client_secret,
14
+ :redirect_url,
15
+ :jwt, :token, :token_file,
16
+ :load_env,
17
+ :headers, :retry, :retry_options,
18
+ :logger
28
19
 
29
20
  def inflate
30
21
  @logger = default_logger if !defined?(@logger) || @logger.nil?
@@ -47,9 +38,10 @@ module RingCentralSdk
47
38
  @client_id = ENV['RINGCENTRAL_CLIENT_ID'] if ENV.key? 'RINGCENTRAL_CLIENT_ID'
48
39
  @client_secret = ENV['RINGCENTRAL_CLIENT_SECRET'] if ENV.key? 'RINGCENTRAL_CLIENT_SECRET'
49
40
  @redirect_url = ENV['RINGCENTRAL_REDIRECT_URL'] if ENV.key? 'RINGCENTRAL_REDIRECT_URL'
50
- @username = ENV['RINGCENTRAL_USERNAME'] if ENV.key? 'RINGCENTRAL_USERNAME'
51
- @extension = ENV['RINGCENTRAL_EXTENSION'] if ENV.key? 'RINGCENTRAL_EXTENSION'
52
- @password = ENV['RINGCENTRAL_PASSWORD'] if ENV.key? 'RINGCENTRAL_PASSWORD'
41
+ # @username = ENV['RINGCENTRAL_USERNAME'] if ENV.key? 'RINGCENTRAL_USERNAME'
42
+ # @extension = ENV['RINGCENTRAL_EXTENSION'] if ENV.key? 'RINGCENTRAL_EXTENSION'
43
+ # @password = ENV['RINGCENTRAL_PASSWORD'] if ENV.key? 'RINGCENTRAL_PASSWORD'
44
+ @jwt = ENV['RINGCENTRAL_JWT'] if ENV.key? 'RINGCENTRAL_JWT'
53
45
  @token = ENV['RINGCENTRAL_TOKEN'] if ENV.key? 'RINGCENTRAL_TOKEN'
54
46
  @token_file = ENV['RINGCENTRAL_TOKEN_FILE'] if ENV.key? 'RINGCENTRAL_TOKEN_FILE'
55
47
  @retry = ENV['RINGCENTRAL_RETRY'] if ENV.key? 'RINGCENTRAL_RETRY'
@@ -15,12 +15,9 @@ module RingCentralSdk
15
15
  DEFAULT_BASE64_ENCODE = true
16
16
  DEFAULT_CONTENT_ID_DISABLE = true
17
17
 
18
- attr_accessor :method
19
- attr_accessor :mime_part_params
18
+ attr_accessor :method, :mime_part_params
20
19
 
21
- attr_reader :mime
22
- attr_reader :account_id
23
- attr_reader :extension_id
20
+ attr_reader :mime, :account_id, :extension_id
24
21
 
25
22
  def initialize(opts = {})
26
23
  @mime = MIME::Multipart::Mixed.new
@@ -1,6 +1,6 @@
1
1
  # RingCentralSdk is a SDK for the RingCentral REST API
2
2
  module RingCentralSdk
3
- VERSION = '3.0.0'.freeze
3
+ VERSION = '3.1.0'.freeze
4
4
 
5
5
  RC_SERVER_PRODUCTION = 'https://platform.ringcentral.com'.freeze
6
6
  RC_SERVER_SANDBOX = 'https://platform.devtest.ringcentral.com'.freeze
data/pubnub.log CHANGED
@@ -31,3 +31,27 @@ D, [2023-02-20T07:51:48.766805 #17761] DEBUG -- Pubnub::Telementry: Initialized
31
31
  D, [2023-02-20T07:51:48.766950 #17761] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
32
32
  D, [2023-02-20T07:51:48.768788 #17761] DEBUG -- Pubnub::Telementry: Initialized Telemetry
33
33
  D, [2023-02-20T07:51:48.768823 #17761] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
34
+ D, [2023-02-20T08:24:30.269889 #18664] DEBUG -- Pubnub::Telementry: Initialized Telemetry
35
+ D, [2023-02-20T08:24:30.270993 #18664] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
36
+ D, [2023-02-20T08:24:30.272699 #18664] DEBUG -- Pubnub::Telementry: Initialized Telemetry
37
+ D, [2023-02-20T08:24:30.272733 #18664] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
38
+ D, [2024-11-09T07:37:13.047148 #2246] DEBUG -- Pubnub::Telementry: Initialized Telemetry
39
+ D, [2024-11-09T07:37:13.047594 #2246] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
40
+ D, [2024-11-09T07:37:13.049664 #2246] DEBUG -- Pubnub::Telementry: Initialized Telemetry
41
+ D, [2024-11-09T07:37:13.049736 #2246] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
42
+ D, [2024-11-09T07:38:23.902584 #2281] DEBUG -- Pubnub::Telementry: Initialized Telemetry
43
+ D, [2024-11-09T07:38:23.902745 #2281] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
44
+ D, [2024-11-09T07:38:23.904805 #2281] DEBUG -- Pubnub::Telementry: Initialized Telemetry
45
+ D, [2024-11-09T07:38:23.904851 #2281] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
46
+ D, [2024-11-09T07:41:04.801211 #2358] DEBUG -- Pubnub::Telementry: Initialized Telemetry
47
+ D, [2024-11-09T07:41:04.801540 #2358] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
48
+ D, [2024-11-09T07:42:41.613689 #2402] DEBUG -- Pubnub::Telementry: Initialized Telemetry
49
+ D, [2024-11-09T07:42:41.613863 #2402] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
50
+ D, [2024-11-09T07:43:21.311789 #2422] DEBUG -- Pubnub::Telementry: Initialized Telemetry
51
+ D, [2024-11-09T07:43:21.311944 #2422] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
52
+ D, [2024-11-09T07:44:29.345106 #2454] DEBUG -- Pubnub::Telementry: Initialized Telemetry
53
+ D, [2024-11-09T07:44:29.345427 #2454] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
54
+ D, [2024-11-09T07:44:45.085141 #2465] DEBUG -- Pubnub::Telementry: Initialized Telemetry
55
+ D, [2024-11-09T07:44:45.085321 #2465] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
56
+ D, [2024-11-09T07:45:59.682038 #2502] DEBUG -- Pubnub::Telementry: Initialized Telemetry
57
+ D, [2024-11-09T07:45:59.682423 #2502] DEBUG -- Pubnub::Client: Created new Pubnub::Client instance. Version: 4.8.0
@@ -7,7 +7,7 @@ version = $1
7
7
  Gem::Specification.new do |s|
8
8
  s.name = lib
9
9
  s.version = version
10
- s.date = '2023-02-20'
10
+ s.date = '2024-11-08'
11
11
  s.summary = 'RingCentral SDK - Ruby SDK for the RingCentral Connect Platform API'
12
12
  s.description = 'A Ruby SDK for the RingCentral Connect Platform API'
13
13
  s.authors = ['John Wang']
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
38
38
  s.add_development_dependency 'coveralls', '~> 0'
39
39
  s.add_development_dependency 'mocha', '~> 2'
40
40
  s.add_development_dependency 'rake', '~> 13'
41
+ s.add_dependency 'rubocop', '~> 1.68'
41
42
  s.add_development_dependency 'simplecov', '~> 0'
42
43
  s.add_development_dependency 'test-unit', '~> 3'
43
44
  end
data/test/test_setup.rb CHANGED
@@ -34,8 +34,7 @@ class RingCentralSdkTest < Test::Unit::TestCase
34
34
  config.client_id = 'my_app_client_id'
35
35
  config.client_secret = 'my_app_client_secret'
36
36
  config.server_url = RingCentralSdk::RC_SERVER_SANDBOX
37
- config.username = 'my_username'
38
- config.password = 'my_password'
37
+ config.jwt = 'my_jwt'
39
38
  end
40
39
 
41
40
  assert_equal 'my_test_access_token', rcsdk.token.to_hash[:access_token]
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: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-20 00:00:00.000000000 Z
11
+ date: 2024-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -308,6 +308,20 @@ dependencies:
308
308
  - - "~>"
309
309
  - !ruby/object:Gem::Version
310
310
  version: '13'
311
+ - !ruby/object:Gem::Dependency
312
+ name: rubocop
313
+ requirement: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - "~>"
316
+ - !ruby/object:Gem::Version
317
+ version: '1.68'
318
+ type: :runtime
319
+ prerelease: false
320
+ version_requirements: !ruby/object:Gem::Requirement
321
+ requirements:
322
+ - - "~>"
323
+ - !ruby/object:Gem::Version
324
+ version: '1.68'
311
325
  - !ruby/object:Gem::Dependency
312
326
  name: simplecov
313
327
  requirement: !ruby/object:Gem::Requirement
@@ -345,7 +359,7 @@ files:
345
359
  - CHANGELOG.md
346
360
  - Gemfile
347
361
  - Gemfile.lock
348
- - LICENSE.md
362
+ - LICENSE
349
363
  - README.md
350
364
  - Rakefile
351
365
  - lib/ringcentral_sdk.rb