ringcentral_sdk 1.0.0 → 1.1.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: df5aca1bce66925c5e3e14d134fba3f5b53625e9
4
- data.tar.gz: 811bac728f717e58b0ab0f7c5c1b420468103c3f
3
+ metadata.gz: 98d2a8eb022ff4511a3d145f3b5aa893f30ba796
4
+ data.tar.gz: 163dd6efc182dda1ab77523d21955fa5ac8b7348
5
5
  SHA512:
6
- metadata.gz: 99e6878c0e06d67cd959eabad0ae6291714f7d11e9ab00f8d22de5fcd72f873ccbca7001f0b4fd097c1899c2c6f04be1f2b7edcac6129e9d8d049fa751ec7763
7
- data.tar.gz: 2878c4c401b37fbe11c2ca7b7a3066bedcc5f62542f8de8dfb1071070608d0deea9b131f580ec8b2dd19f43d644ffa8c788e98031afba5832fa43a0f86b012a6
6
+ metadata.gz: d5d99ea86065b3c9c52af955f6171541205ab90cf047c0a7502f3ff280e4920178a96ef1b772c5c0c276bcb63f08c3c63eb9699a1f39d8db43b595cb758ba2bd
7
+ data.tar.gz: 684f7792e42327cc036917a9f41e09d711ccad403e2b7417892b9b3a6b3c2d826f005ad45e90ba0148f8186c959897064538165c97bd8d9f889f91878bc632f3
data/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  CHANGELOG
2
2
  ---------
3
- - **2016-01-23**: 0.9.0
4
- - Major refactor
5
- - Add `RingCentral::REST::Config` and dotenv support
3
+ - **2016-02-07**: 1.1.0
4
+ - Add Subscription to Retrieve New Messages functionality
5
+ - `./lib`
6
+ - Add `RingCentralSdk::REST::Event`
7
+ - Add `RingCentralSdk::REST::MessagesRetriever`
8
+ - Add `RingCentralSdk::REST::Request::Simple`
9
+ - Update `RingCentralSdk::REST::Client` - update `send_request`
10
+ - Update `RingCentralSdk::REST::Request::Base` - add `headers`
11
+ - `./scripts`
12
+ - Add `scripts/fax_download.rb` demo script
13
+ - Add `scripts/fax_download_new.rb` demo script
14
+ - Add `scripts/sms_to_chat.rb` demo script to send inbound SMS to chat
15
+ - **2016-01-26**: 1.0.0
16
+ - Major refactor focusing on naming changes to improve consistency
17
+ - All code moved into `RingCentralSdk::REST` namespace
18
+ - Update: rename `RingCentralSdk::Platform` to `RingCentralSdk::REST::Client`
19
+ - Update: rename `RingCentralSdk::Platform::client` to `RingCentralSdk::REST::Client::http`
20
+ - Update: rename `RingCentralSdk::Helpers` namespace to `RingCentralSdk::Request`
21
+ - Add `RingCentralSdk::REST::Config` to support `dotenv` config files
22
+ - Add `RingCentralSdk::REST::Config` reads dotenv files
23
+ - Add `scripts/account-extensions.rb` script
24
+ - Update sample scripts to use new Config object
25
+ - Add `RingCentral::REST::Messages`, `RingCentral::REST::Messages::MessagesSMS` and `RingCentral::REST::Messages::MessagesFax`
26
+ - Update `RingCentralSdk::REST::Request::Fax` helper for nicer interface, formerly `RingCentralSdk::Helpers::Fax`
6
27
  - **2016-01-22**: 0.5.2
7
- - Add `RingCentralSdk::Cache::Extensions`
8
- - Add `RingCentralSdk::Helpers::ExtensionPresence`
9
- - Add Call Queue Member Status mydocs documentation
28
+ - Add Call Queue Management support
29
+ - Add `RingCentralSdk::Cache::Extensions`
30
+ - Add `RingCentralSdk::Helpers::ExtensionPresence`
31
+ - Add Call Queue Member Status mydocs documentation
10
32
  - **2015-12-08**: 0.5.1
11
33
  - Add call recording transcription demo script via VoiceBase
12
34
  - Fix PubNub unsubscribe bug
@@ -15,19 +37,23 @@ CHANGELOG
15
37
  - Update sample scripts credentials file format to be more scalable
16
38
  - **2015-10-18**: 0.5.0
17
39
  - Add stubbed tests via `mocha`
18
- - Add `RingCentralSdk.new()` sugar method
19
- - Modify `RingCentralSdk::RC_SERVER_PRODUCTION` url from `RingCentralSdk::Sdk::RC_SERVER_Production`
20
- - Remove `lib/ringcentral_sdk/sdk.rb` file and `RingCentralSdk::Sdk` class
21
- - Remove `lib/ringcentral_sdk/version.rb` file
22
- - Remove `VERSION.txt` file
40
+ - Update naming and cleanup interface
41
+ - Add `RingCentralSdk.new()` sugar method
42
+ - Update `RingCentralSdk::RC_SERVER_PRODUCTION` url from `RingCentralSdk::Sdk::RC_SERVER_Production`
43
+ - Delete `lib/ringcentral_sdk/sdk.rb` file and `RingCentralSdk::Sdk` class
44
+ - Delete `lib/ringcentral_sdk/version.rb` file
45
+ - Delete `VERSION.txt` file
23
46
  - **2015-10-15**: 0.4.0
24
- - Add 3-Legged OAuth support via platform `authorize_url` and `authorize_code` methods
25
- - Add `oauth2-sinatra` demo app in `scripts` directory
26
- - Add `call_recording_download.rb` demo script
27
- - Add `rc-credentials.json` separate demo credentials file
28
- - Update `fax_send.rb` demo script with name change
29
- - Modify SDK initialization by converting optional params to options hash
30
- - Refactor `RingCentralSdk::Platform::Platform` to `RingCentralSdk::Platform`
47
+ - Add OAuth `authorization_code` support
48
+ - './lib'
49
+ - Add 3-Legged OAuth support via platform `authorize_url` and `authorize_code` methods
50
+ - Update SDK initialization by converting optional params to options hash
51
+ - Update `RingCentralSdk::Platform::Platform` to `RingCentralSdk::Platform`
52
+ - './scripts'
53
+ - Add `oauth2-sinatra` demo app in `scripts` directory
54
+ - Add `call_recording_download.rb` demo script
55
+ - Add `rc-credentials.json` separate demo credentials file
56
+ - Update `fax_send.rb` demo script with name change
31
57
  - **2015-10-07**: 0.3.0
32
58
  - Add subscription support via PubNub
33
59
  - Add `ruby-head`, `jruby`, `jruby-head`, and `rbx-2` to Travis CI
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gem 'dotenv'
5
5
  gem 'faraday', '~> 0.9.0'
6
6
  gem 'faraday_middleware'
7
7
  gem 'faraday_middleware-oauth2_refresh'
8
+ gem 'jsondoc'
8
9
  gem 'logger'
9
10
  gem 'mime'
10
11
  gem 'mime-types'
data/Gemfile.lock CHANGED
@@ -24,6 +24,7 @@ GEM
24
24
  http-cookie (1.0.2)
25
25
  domain_name (~> 0.5)
26
26
  json (1.8.3)
27
+ jsondoc (0.1.0)
27
28
  jwt (1.5.2)
28
29
  logger (1.2.8)
29
30
  metaclass (0.0.4)
@@ -82,6 +83,7 @@ DEPENDENCIES
82
83
  faraday (~> 0.9.0)
83
84
  faraday_middleware
84
85
  faraday_middleware-oauth2_refresh
86
+ jsondoc
85
87
  logger
86
88
  mime
87
89
  mime-types
@@ -94,3 +96,6 @@ DEPENDENCIES
94
96
  simplecov
95
97
  test-unit
96
98
  timers
99
+
100
+ BUNDLED WITH
101
+ 1.11.2
data/README.md CHANGED
@@ -22,10 +22,12 @@ RingCentral SDK for Ruby
22
22
  1. [Authorization](#authorization)
23
23
  1. [Password Grant](#password-grant)
24
24
  1. [Authorization Code Grant](#authorization-code-grant)
25
+ 1. [Token Reuse](#token-reuse)
25
26
  1. [API Requests](#api-requests)
26
27
  1. [Generic HTTP Requests](#generic-http-requests)
27
28
  2. [SMS Example](#sms-example)
28
29
  3. [Fax Example](#fax-example)
30
+ 1. [Advanced Use Cases](#advanced-use-cases)
29
31
  5. [Supported Ruby Versions](#supported-ruby-versions)
30
32
  6. [Releases](#releases)
31
33
  1. [Versioning](#versioning)
@@ -40,19 +42,16 @@ A library for using the [RingCentral REST API](https://developers.ringcentral.co
40
42
 
41
43
  ## Documentation
42
44
 
43
- Documentation is available on:
45
+ Full documentation and resources are available at:
44
46
 
45
- 1. [Read the Docs](http://ringcentral-sdk-ruby.readthedocs.org/)
46
- 2. [RubyDoc](http://www.rubydoc.info/gems/ringcentral_sdk/).
47
+ 1. [Ruby SDK Developer Guide](http://ringcentral-sdk-ruby.readthedocs.org/) - Read the Docs
48
+ 2. [Ruby SDK Reference Guide](http://www.rubydoc.info/gems/ringcentral_sdk/) - RubyDoc.info
47
49
 
48
- Read the Docs is the primary documentation solution used, however, RubyDoc is useful for examining code.
50
+ For API information, see the official RingCentral resources:
49
51
 
50
- In addition the documentation for this Ruby SDK, refer to the official RingCentral guides for
51
- more information on individual API calls:
52
-
53
- 1. [API Developer and Reference Guide](https://developers.ringcentral.com/api-docs/latest/index.html) for information on specific APIs.
54
- 1. [API Explorer](http://ringcentral.github.io/api-explorer/)
55
- 1. [Dev Tutorial](http://ringcentral.github.io/tutorial/)
52
+ 1. [API Developer and Reference Guide](https://developers.ringcentral.com/api-docs/latest/index.html)
53
+ 1. [API Explorer](https://developer.ringcentral.com/api-explorer/)
54
+ 1. [CTI Tutorial](http://ringcentral.github.io/tutorial/)
56
55
 
57
56
  ## Installation
58
57
 
@@ -73,12 +72,6 @@ $ gem install ringcentral_sdk
73
72
 
74
73
  ## Usage
75
74
 
76
- This provides a very basic guide to using the SDK. Please use the following resources for more information:
77
-
78
- 1. [SDK Developer Guide](http://ringcentral-sdk-ruby.readthedocs.org/)
79
- 2. [SDK Reference](http://www.rubydoc.info/gems/ringcentral_sdk/).
80
- 1. [API Developer and Reference Guide](https://developers.ringcentral.com/api-docs/latest/index.html)
81
-
82
75
  ### Instantiation and Authorization
83
76
 
84
77
  How you instantiate the SDK can depend on whether you use OAuth 2.0 password grant or the authorization code grant which are both described here.
@@ -118,7 +111,7 @@ client = RingCentralSdk::REST::Client.new(
118
111
  'myAppKey',
119
112
  'myAppSecret',
120
113
  RingCentralSdk::RC_SERVER_SANDBOX,
121
- {:redirect_uri => 'http://example.com/oauth'}
114
+ {redirect_uri: 'http://example.com/oauth'}
122
115
  )
123
116
 
124
117
  # Retrieve OAuth authorize url using default redirect URL
@@ -175,9 +168,9 @@ http = client.http
175
168
 
176
169
  ```ruby
177
170
  client.messages.sms.create(
178
- :from => '+16505551212',
179
- :to => '+14155551212',
180
- :text => 'Hi there!'
171
+ from: '+16505551212',
172
+ to: '+14155551212',
173
+ text: 'Hi there!'
181
174
  )
182
175
  ```
183
176
 
@@ -187,9 +180,9 @@ Fax files:
187
180
 
188
181
  ```ruby
189
182
  client.messages.fax.create(
190
- :to => '+14155551212',
191
- :coverPageText => 'Hi there!',
192
- :files => ['/path/to/myfile.pdf']
183
+ to: '+14155551212',
184
+ coverPageText: 'Hi there!',
185
+ files: ['/path/to/myfile.pdf']
193
186
  )
194
187
  ```
195
188
 
@@ -197,9 +190,9 @@ Fax text:
197
190
 
198
191
  ```ruby
199
192
  client.messages.fax.create(
200
- :to => '+14155551212',
201
- :coverPageText => 'Hi there!',
202
- :text => 'Hi there!'
193
+ to: '+14155551212',
194
+ coverPageText: 'Hi there!',
195
+ text: 'Hi there!'
203
196
  )
204
197
  ```
205
198
 
@@ -227,6 +220,11 @@ sub.subscribe(['/restapi/v1.0/account/~/extension/~/presence'])
227
220
  sub.destroy()
228
221
  ```
229
222
 
223
+ ### Advanced Use Cases
224
+
225
+ 1. [Subscribing to All Extensions](http://ringcentral-sdk-ruby.readthedocs.org/en/latest/usage/notifications/Subscriptions-All-Extensions/)
226
+ 1. [Managing Call Queue Member Status](http://ringcentral-sdk-ruby.readthedocs.org/en/latest/usage/callqueues/Member-Status/)
227
+
230
228
  ## Supported Ruby Versions
231
229
 
232
230
  This library supports and is [tested against](https://travis-ci.org/grokify/ringcentral-sdk-ruby) the following Ruby implementations:
@@ -247,9 +245,8 @@ Releases with release notes are availabe on [GitHub releases](https://github.com
247
245
 
248
246
  ### Versioning
249
247
 
250
- This project is currently in development and the API can change. During initial development (Version 0.x.x), minor version changes will indicate either substantial feature inclusion or breaking changes.
251
-
252
- Once the project is version 1.0.0 or above, it will use [semantic versioning](http://semver.org/). At this time, breaking changes will be indicated by a change in major version.
248
+ * Versions 1.0.0 and above follow [semantic versioning](http://semver.org/). Breaking changes will be indicated by a change in major version.
249
+ * Versions below 1.0.0 are in active development. During initial development (Version 0.x.x), minor version changes will indicate either substantial feature inclusion or breaking changes.
253
250
 
254
251
  ### Change Log
255
252
 
@@ -273,11 +270,13 @@ RingCentral Official SDKs
273
270
 
274
271
  * https://github.com/ringcentral
275
272
 
276
- ## Contributions
277
-
278
- Any reports of problems, comments or suggestions are most welcome.
273
+ ## Contributing
279
274
 
280
- Please report these on [Github](https://github.com/grokify/ringcentral-sdk-ruby)
275
+ 1. Fork it ( http://github.com/grokify/ringcentral-sdk-ruby/fork )
276
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
277
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
278
+ 4. Push to the branch (`git push origin my-new-feature`)
279
+ 5. Create new Pull Request
281
280
 
282
281
  ## License
283
282
 
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rake'
2
2
  require 'rake/testtask'
3
3
 
4
4
  desc 'Default: run unit tests.'
5
- task :default => :test
5
+ task default: :test
6
6
 
7
7
  desc 'Test the library.'
8
8
  Rake::TestTask.new do |t|
@@ -112,8 +112,8 @@ module RingCentralSdk::REST
112
112
 
113
113
  def authorize_password(username, extension='', password='', remember=false)
114
114
  token = @oauth2client.password.get_token(username, password, {
115
- :extension => extension,
116
- :headers => { 'Authorization' => 'Basic ' + get_api_key() } })
115
+ extension: extension,
116
+ headers: { 'Authorization' => 'Basic ' + get_api_key() } })
117
117
  set_token(token)
118
118
  return token
119
119
  end
@@ -134,21 +134,21 @@ module RingCentralSdk::REST
134
134
  @token = token
135
135
 
136
136
  @http = Faraday.new(:url => api_version_url()) do |conn|
137
- conn.request :oauth2_refresh, @token
138
- conn.request :json
139
- conn.request :url_encoded
137
+ conn.request :oauth2_refresh, @token
138
+ conn.request :json
139
+ conn.request :url_encoded
140
140
  conn.headers['User-Agent'] = @user_agent
141
141
  conn.headers['Rc-User-Agent'] = @user_agent
142
142
  conn.response :json, :content_type => /\bjson$/
143
- conn.adapter Faraday.default_adapter
143
+ conn.adapter Faraday.default_adapter
144
144
  end
145
145
  end
146
146
 
147
147
  def new_oauth2_client()
148
148
  return OAuth2::Client.new(@app_config.key, @app_config.secret,
149
- :site => @app_config.server_url,
150
- :authorize_url => AUTHZ_ENDPOINT,
151
- :token_url => TOKEN_ENDPOINT)
149
+ site: @app_config.server_url,
150
+ authorize_url: AUTHZ_ENDPOINT,
151
+ token_url: TOKEN_ENDPOINT)
152
152
  end
153
153
 
154
154
  def set_oauth2_client(client=nil)
@@ -167,19 +167,44 @@ module RingCentralSdk::REST
167
167
  return api_key
168
168
  end
169
169
 
170
- def send_request(request=nil)
171
- unless request.is_a?(RingCentralSdk::REST::Request::Base)
170
+ def send_request(request_sdk = nil)
171
+ unless request_sdk.is_a?(RingCentralSdk::REST::Request::Base)
172
172
  fail 'Request is not a RingCentralSdk::REST::Request::Base'
173
173
  end
174
174
 
175
- if request.method.downcase == 'post'
176
- resp = @http.post do |req|
177
- req.url request.url
178
- req.headers['Content-Type'] = request.content_type if request.content_type
179
- req.body = request.body if request.body
180
- end
181
- return resp
175
+ res = nil
176
+
177
+ method = request_sdk.method.downcase
178
+ case method
179
+ when 'delete'
180
+ res = @http.delete { |req| req = inflate_request(req, request_sdk) }
181
+ when 'get'
182
+ res = @http.get { |req| req = inflate_request(req, request_sdk) }
183
+ when 'post'
184
+ res = @http.post { |req| req = inflate_request(req, request_sdk) }
185
+ when 'put'
186
+ res = @http.put { |req| req = inflate_request(req, request_sdk) }
187
+ else
188
+ fail "#{method} not support"
189
+ end
190
+ return res
191
+ end
192
+
193
+ def inflate_request(req_faraday, req_sdk)
194
+ req_faraday.url req_sdk.url
195
+ req_faraday.body = req_sdk.body if req_sdk.body
196
+ if req_sdk.params.is_a? Hash
197
+ req_sdk.params.each { |k,v| req_faraday.params[k] = v }
198
+ end
199
+ if req_sdk.headers.is_a? Hash
200
+ req_sdk.headers.each { |k,v| req_faraday.headers[k] = v }
201
+ end
202
+
203
+ ct = req_sdk.content_type
204
+ if !ct.nil? && ct.to_s.length > 0
205
+ req_faraday.headers['Content-Type'] = ct.to_s
182
206
  end
207
+ return req_faraday
183
208
  end
184
209
 
185
210
  def get_user_agent()
@@ -0,0 +1,61 @@
1
+ require 'jsondoc'
2
+ require 'multi_json'
3
+
4
+ module RingCentralSdk::REST
5
+ class Event
6
+ attr_accessor :doc
7
+ def initialize(data = nil)
8
+ if data.is_a? JsonDoc::Document
9
+ @doc = data
10
+ elsif data.is_a? Hash
11
+ data = _symbolize_keys data
12
+ @doc = JsonDoc::Document.new(data, false, false, false)
13
+ elsif data.nil?
14
+ @doc = JsonDoc::Document.new({}, false, false, false)
15
+ else
16
+ raise 'initialize needs JsonDoc::Document or Hash argument'
17
+ end
18
+ end
19
+
20
+ def _hash_has_string_keys(hash={})
21
+ hash.each do |k,v|
22
+ return true if k.is_a? String
23
+ end
24
+ return false
25
+ end
26
+
27
+ def _symbolize_keys(hash={})
28
+ if _hash_has_string_keys hash
29
+ return MultiJson.decode(MultiJson.encode(hash), :symbolize_keys=>true)
30
+ end
31
+ return hash
32
+ end
33
+
34
+ def new_fax_count
35
+ new_type_count('fax')
36
+ end
37
+
38
+ def new_sms_count
39
+ new_type_count('sms')
40
+ end
41
+
42
+ def new_type_count(type)
43
+ count = 0
44
+ have_type = false
45
+ changes = @doc.getAttr('body.changes')
46
+ if changes.is_a?(Array) && changes.length > 0
47
+ changes.each do |change|
48
+ if change.key?(:type) && change[:type].to_s.downcase == type
49
+ have_type = true
50
+ if change.key?(:newCount)
51
+ count += change[:newCount]
52
+ end
53
+ end
54
+ end
55
+ end
56
+ return have_type ? count : -1
57
+ end
58
+
59
+ private :_hash_has_string_keys, :_symbolize_keys
60
+ end
61
+ end
@@ -1,12 +1,12 @@
1
1
  module RingCentralSdk::REST
2
2
  class Extension
3
- attr_reader :extension_id
4
- attr_reader :presence
5
- attr_accessor :client
6
- def initialize(extension_id, opts={})
7
- @extension_id = extension_id
8
- @client = opts.has_key?(:client) ? opts[:client] : nil
3
+ attr_reader :extension_id
4
+ attr_reader :presence
5
+ attr_accessor :client
6
+ def initialize(extension_id, opts={})
7
+ @extension_id = extension_id
8
+ @client = opts.has_key?(:client) ? opts[:client] : nil
9
9
  @presence = RingCentralSdk::REST::ExtensionPresence.new(extension_id, opts)
10
- end
10
+ end
11
11
  end
12
12
  end
@@ -29,7 +29,7 @@ module RingCentralSdk::REST
29
29
  def department_calls_enable(enable)
30
30
  retrieve()
31
31
 
32
- if !@presence_data.key?('dndStatus')
32
+ unless @presence.is_a?(Hash) && @presence_data.key?('dndStatus')
33
33
  raise 'invalid presence info'
34
34
  end
35
35
 
@@ -81,11 +81,11 @@ module RingCentralSdk::REST
81
81
 
82
82
  def new_status_dnd_department_calls(current_status, enable)
83
83
  new_statuses = {
84
- :enable => {
84
+ enable: {
85
85
  'DoNotAcceptAnyCalls' => 'TakeDepartmentCallsOnly',
86
86
  'DoNotAcceptDepartmentCalls' => 'TakeAllCalls'
87
87
  },
88
- :disable => {
88
+ disable: {
89
89
  'TakeAllCalls' => 'DoNotAcceptDepartmentCalls',
90
90
  'TakeDepartmentCallsOnly' => 'DoNotAcceptAnyCalls'
91
91
  }
@@ -22,9 +22,9 @@ module RingCentralSdk::REST
22
22
  req.url 'account/~/extension/~/sms'
23
23
  req.headers['Content-Type'] = 'application/json'
24
24
  req.body = {
25
- :from => { :phoneNumber => opts[:from].to_s },
26
- :to => [ { :phoneNumber => opts[:to].to_s } ],
27
- :text => opts[:text].to_s
25
+ from: { phoneNumber: opts[:from].to_s },
26
+ to: [ { phoneNumber: opts[:to].to_s } ],
27
+ text: opts[:text].to_s
28
28
  }
29
29
  end
30
30
  return response
@@ -43,4 +43,4 @@ module RingCentralSdk::REST
43
43
  return @client.send_request(fax)
44
44
  end
45
45
  end
46
- end
46
+ end
@@ -0,0 +1,45 @@
1
+ require 'date'
2
+ require 'jsondoc'
3
+
4
+ module RingCentralSdk::REST
5
+ class MessagesRetriever
6
+ attr_accessor :range
7
+ def initialize(client)
8
+ @client = client
9
+ @range = 1.0 # minutes
10
+ end
11
+
12
+ def retrieve_for_event(event, params={})
13
+ unless event.is_a? RingCentralSdk::REST::Event
14
+ fail 'retrieve_for_event requires RingCentralSdk::REST::Event argument'
15
+ end
16
+ url = event.doc.getAttr :event
17
+ last_updated_s = event.doc.getAttr('body.lastUpdated')
18
+ last_updated_dt = DateTime.iso8601(last_updated_s)
19
+
20
+ params.merge!(
21
+ dateFrom: (last_updated_dt - (@range/1440.0)).to_s,
22
+ dateTo: (last_updated_dt + (@range/1440.0)).to_s)
23
+
24
+ if event.new_sms_count > 0
25
+ params[:messageType] = 'SMS'
26
+ end
27
+
28
+ res = @client.http.get do |req|
29
+ req.url url
30
+ req.params = params
31
+ end
32
+
33
+ messages = []
34
+
35
+ res.body['records'].each do |rec|
36
+ rec_last_modified_time = rec['lastModifiedTime']
37
+ rec_last_modified_time_dt = DateTime.iso8601(rec_last_modified_time)
38
+ if rec_last_modified_time_dt == last_updated_dt
39
+ messages.push rec
40
+ end
41
+ end
42
+ return messages
43
+ end
44
+ end
45
+ end
@@ -1,16 +1,27 @@
1
1
  module RingCentralSdk::REST::Request
2
2
  class Base
3
- def method()
4
- return 'get'
3
+ def method
4
+ return 'get' # HTTP methods
5
5
  end
6
- def url()
6
+
7
+ def url
7
8
  return ''
8
9
  end
9
- def content_type()
10
- return ''
10
+
11
+ def params
12
+ return {}
13
+ end
14
+
15
+ def headers
16
+ return {}
11
17
  end
12
- def body()
18
+
19
+ def content_type
13
20
  return ''
14
21
  end
22
+
23
+ def body
24
+ return '' # '' || Hash
25
+ end
15
26
  end
16
- end
27
+ end
@@ -25,16 +25,8 @@ module RingCentralSdk::REST::Request
25
25
  end
26
26
 
27
27
  def add_path(opts={})
28
- if opts.key?(:accountId) && opts[:accountId].to_s.length>0
29
- @account_id = opts[:accountId]
30
- else
31
- @account_id = '~'
32
- end
33
- if opts.key?(:extensionId) && opts[:extensionId].to_s.length>0
34
- @extension_id = opts[:extensionId]
35
- else
36
- @extension_id = '~'
37
- end
28
+ @account_id = opts[:accountId] ||= '~'
29
+ @extension_id = opts[:extensionId] ||= '~'
38
30
  end
39
31
 
40
32
  def add_part_meta(opts={})
@@ -57,12 +49,12 @@ module RingCentralSdk::REST::Request
57
49
  meta[:to] = inf.inflate_to_array opts[:to]
58
50
 
59
51
  processed = {
60
- :accountId => 1,
61
- :extensionId => 1,
62
- :to => 1,
63
- :text => 1,
64
- :files => 1,
65
- :parts => 1
52
+ accountId: 1,
53
+ extensionId: 1,
54
+ to: 1,
55
+ text: 1,
56
+ files: 1,
57
+ parts: 1
66
58
  }
67
59
 
68
60
  opts.each do |k,v|
@@ -118,4 +110,4 @@ module RingCentralSdk::REST::Request
118
110
  @msg.body.to_s
119
111
  end
120
112
  end
121
- end
113
+ end
@@ -1,3 +1,3 @@
1
1
  module RingCentralSdk::REST::Request::Inflator
2
2
  autoload :ContactInfo, 'ringcentral_sdk/rest/request/inflator/contact_info'
3
- end
3
+ end
@@ -0,0 +1,40 @@
1
+ module RingCentralSdk::REST::Request
2
+ class Simple < RingCentralSdk::REST::Request::Base
3
+ def initialize(opts = {})
4
+ @method = opts[:method]
5
+ @url = opts[:url]
6
+ @params = opts[:params]
7
+ @headers = opts[:headers]
8
+ @body = body.nil? ? '' : body
9
+ if body.is_a? Hash
10
+ @headers = {} unless @headers.is_a? Hash
11
+ @headers['Content-Type'] = 'application/json'
12
+ end
13
+
14
+ def content_type
15
+ ct = @headers.is_a?(Hash) \
16
+ ? @headers['Content-Type'] || '' : 'application/json'
17
+ end
18
+
19
+ def method
20
+ @method
21
+ end
22
+
23
+ def url
24
+ @url
25
+ end
26
+
27
+ def params
28
+ @params
29
+ end
30
+
31
+ def headers
32
+ @headers
33
+ end
34
+
35
+ def body
36
+ @body
37
+ end
38
+ end
39
+ end
40
+ end
@@ -2,4 +2,5 @@ module RingCentralSdk::REST::Request
2
2
  autoload :Base, 'ringcentral_sdk/rest/request/base'
3
3
  autoload :Fax, 'ringcentral_sdk/rest/request/fax'
4
4
  autoload :Inflator, 'ringcentral_sdk/rest/request/inflator'
5
- end
5
+ autoload :Simple, 'ringcentral_sdk/rest/request/simple'
6
+ end
@@ -1,4 +1,20 @@
1
1
  module RingCentralSdk::REST
2
+
3
+ # A simplified, but still generic, REST interface.
4
+ #
5
+ # NOTE: This is an experimental module.
6
+ #
7
+ # client = RingCentralSdk::REST::Client.new ...
8
+ # simple = RingCentralSdk::REST::SimpleClient client
9
+ #
10
+ # simple.post(
11
+ # path: 'sms',
12
+ # body: {
13
+ # from: {phoneNumber: '+16505551212'},
14
+ # to: [{phoneNumber: '+14155551212'}],
15
+ # text: 'Hi There!'
16
+ # }
17
+ # )
2
18
  class SimpleClient
3
19
  attr_accessor :client
4
20
 
@@ -13,7 +29,7 @@ module RingCentralSdk::REST
13
29
  raise "Request is not a RingCentralSdk::Helpers::Request or Hash"
14
30
  end
15
31
 
16
- verb = request.has_key?(:verb) ? request[:verb].to_s.downcase : 'get'
32
+ verb = request.key?(:verb) ? request[:verb].to_s.downcase : 'get'
17
33
 
18
34
  if verb == 'get'
19
35
  return get(request)
@@ -42,26 +58,25 @@ module RingCentralSdk::REST
42
58
 
43
59
  def post(opts={})
44
60
  return @client.http.post do |req|
45
- req.url build_url(opts[:path])
46
- if opts.has_key?(:body)
47
- req.body = opts[:body]
48
- if opts[:body].is_a?(Hash)
49
- req.headers['Content-Type'] = 'application/json'
50
- end
51
- end
61
+ req = inflate_request req, opts
52
62
  end
53
63
  end
54
64
 
55
65
  def put(opts={})
56
66
  return @client.http.put do |req|
57
- req.url build_url(opts[:path])
58
- if opts.has_key?(:body)
59
- req.body = opts[:body]
60
- if opts[:body].is_a?(Hash)
61
- req.headers['Content-Type'] = 'application/json'
62
- end
67
+ req = inflate_request req, opts
68
+ end
69
+ end
70
+
71
+ def inflate_request(req, opts={})
72
+ req.url build_url(opts[:path])
73
+ if opts.key? :body
74
+ req.body = opts[:body]
75
+ if opts[:body].is_a?(Hash)
76
+ req.headers['Content-Type'] = 'application/json'
63
77
  end
64
78
  end
79
+ req
65
80
  end
66
81
 
67
82
  def build_url(path)
@@ -69,7 +84,7 @@ module RingCentralSdk::REST
69
84
  if !path.is_a?(Array)
70
85
  path = [path]
71
86
  end
72
- if path.length>0
87
+ if path.length > 0
73
88
  path0 = path[0].to_s
74
89
  if path0 !~ /\//
75
90
  if path0.index('account') != 0
@@ -83,6 +98,5 @@ module RingCentralSdk::REST
83
98
  url = path.join('/')
84
99
  return url
85
100
  end
86
-
87
101
  end
88
102
  end
@@ -46,7 +46,7 @@ module RingCentralSdk::REST
46
46
  return @_pubnub
47
47
  end
48
48
 
49
- def register(events=nil)
49
+ def register(events = nil)
50
50
  return alive?() ? renew(events) : subscribe(events)
51
51
  end
52
52
 
@@ -54,7 +54,7 @@ module RingCentralSdk::REST
54
54
  unless events.is_a?(Array)
55
55
  raise 'Events is not an array.'
56
56
  end
57
- @event_filters.push(events) if events.length>0
57
+ @event_filters.push(events) if events.length > 0
58
58
  end
59
59
 
60
60
  def set_events(events)
@@ -67,7 +67,7 @@ module RingCentralSdk::REST
67
67
  def subscribe(events=nil)
68
68
  set_events(events) if events.is_a?(Array)
69
69
 
70
- if !@event_filters.is_a?(Array) || @event_filters.length ==0
70
+ if !@event_filters.is_a?(Array) || @event_filters.length == 0
71
71
  raise 'Events are undefined'
72
72
  end
73
73
 
@@ -75,9 +75,9 @@ module RingCentralSdk::REST
75
75
  response = @_client.http.post do |req|
76
76
  req.url 'subscription'
77
77
  req.body = {
78
- :eventFilters => @_client.create_urls(@event_filters),
79
- :deliveryMode => {
80
- :transportType => 'PubNub'
78
+ eventFilters: @_client.create_urls(@event_filters),
79
+ deliveryMode: {
80
+ transportType: 'PubNub'
81
81
  }
82
82
  }
83
83
  end
@@ -95,7 +95,7 @@ module RingCentralSdk::REST
95
95
 
96
96
  end
97
97
 
98
- def renew(events=nil)
98
+ def renew(events = nil)
99
99
  set_events(events) if events.is_a?(Array)
100
100
 
101
101
  unless alive?()
@@ -112,7 +112,7 @@ module RingCentralSdk::REST
112
112
  response = @_client.http.put do |req|
113
113
  req.url 'subscription/' + @_subscription['id'].to_s
114
114
  req.body = {
115
- :eventFilters => @_client.create_urls(@event_filters),
115
+ eventFilters: @_client.create_urls(@event_filters)
116
116
  }
117
117
  end
118
118
 
@@ -191,16 +191,17 @@ module RingCentralSdk::REST
191
191
  callback = lambda { |envelope|
192
192
  _notify(envelope.msg)
193
193
  changed
194
- notify_observers('GOT_PUBNUB_MESSAGE_NOTIFY')
194
+ #notify_observers {}
195
+ #notify_observers('GOT_PUBNUB_MESSAGE_NOTIFY')
195
196
  }
196
197
 
197
198
  @_pubnub.subscribe(
198
- :channel => @_subscription['deliveryMode']['address'],
199
- :callback => callback,
200
- :error => lambda { |envelope| puts('ERROR: ' + envelope.msg.to_s) },
201
- :connect => lambda { |envelope| puts('CONNECTED') },
202
- :reconnect => lambda { |envelope| puts('RECONNECTED') },
203
- :disconnect => lambda { |envelope| puts('DISCONNECTED') }
199
+ channel: @_subscription['deliveryMode']['address'],
200
+ callback: callback,
201
+ error: lambda { |envelope| puts('ERROR: ' + envelope.msg.to_s) },
202
+ connect: lambda { |envelope| puts('CONNECTED') },
203
+ reconnect: lambda { |envelope| puts('RECONNECTED') },
204
+ disconnect: lambda { |envelope| puts('DISCONNECTED') }
204
205
  )
205
206
  end
206
207
 
@@ -225,7 +226,7 @@ module RingCentralSdk::REST
225
226
  ciphertext = Base64.decode64(message)
226
227
  plaintext = cipher.update(ciphertext) + cipher.final
227
228
 
228
- message = MultiJson.decode(plaintext)
229
+ message = MultiJson.decode(plaintext, :symbolize_keys=>false)
229
230
  end
230
231
 
231
232
  return message
@@ -257,7 +258,7 @@ module RingCentralSdk::REST
257
258
  end
258
259
 
259
260
  def _clear_timeout()
260
- if @_timeout.is_a?(Timers::Group)
261
+ if @_timeout.is_a? Timers::Group
261
262
  @_timeout.cancel()
262
263
  end
263
264
  end
@@ -266,17 +267,16 @@ module RingCentralSdk::REST
266
267
  my_logger = Logger.new(STDOUT) if my_logger.nil?
267
268
 
268
269
  return Pubnub.new(
269
- :subscribe_key => subscribe_key.to_s,
270
- :publish_key => publish_key.to_s,
271
- :error_callback => lambda { |msg|
270
+ subscribe_key: subscribe_key.to_s,
271
+ publish_key: publish_key.to_s,
272
+ error_callback: lambda { |msg|
272
273
  puts "Error callback says: #{msg.inspect}"
273
274
  },
274
- :connect_callback => lambda { |msg|
275
+ connect_callback: lambda { |msg|
275
276
  puts "CONNECTED: #{msg.inspect}"
276
277
  },
277
- :logger => my_logger
278
+ logger: my_logger
278
279
  )
279
280
  end
280
-
281
281
  end
282
- end
282
+ end
@@ -5,11 +5,13 @@ module RingCentralSdk::REST
5
5
  autoload :ConfigApp, 'ringcentral_sdk/rest/config'
6
6
  autoload :ConfigUser, 'ringcentral_sdk/rest/config'
7
7
  autoload :ConfigEnvRc, 'ringcentral_sdk/rest/config'
8
+ autoload :Event, 'ringcentral_sdk/rest/event'
8
9
  autoload :Extension, 'ringcentral_sdk/rest/extension'
9
10
  autoload :ExtensionPresence, 'ringcentral_sdk/rest/extension_presence'
10
11
  autoload :Messages, 'ringcentral_sdk/rest/messages'
11
12
  autoload :MessagesFax, 'ringcentral_sdk/rest/messages'
12
13
  autoload :MessagesSMS, 'ringcentral_sdk/rest/messages'
14
+ autoload :MessagesRetriever, 'ringcentral_sdk/rest/messages_retriever'
13
15
  autoload :Request, 'ringcentral_sdk/rest/request'
14
16
  autoload :Subscription, 'ringcentral_sdk/rest/subscription'
15
- end
17
+ end
@@ -1,6 +1,5 @@
1
1
  module RingCentralSdk
2
-
3
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
4
3
 
5
4
  RC_SERVER_PRODUCTION = 'https://platform.ringcentral.com'
6
5
  RC_SERVER_SANDBOX = 'https://platform.devtest.ringcentral.com'
@@ -8,9 +7,8 @@ module RingCentralSdk
8
7
  autoload :REST, 'ringcentral_sdk/rest'
9
8
 
10
9
  class << self
11
- def new(app_key, app_secret, server_url=RC_SERVER_SANDBOX, opts={})
10
+ def new(app_key, app_secret, server_url = RC_SERVER_SANDBOX, opts = {})
12
11
  RingCentralSdk::REST::Client.new(app_key, app_secret, server_url, opts)
13
12
  end
14
13
  end
15
-
16
- end
14
+ end
data/mkdocs.yml CHANGED
@@ -27,4 +27,5 @@ pages:
27
27
 
28
28
  ## Notifications:
29
29
  - ['usage/notifications/Subscriptions.md', 'Notifications', 'Subscriptions']
30
- - ['usage/notifications/Subscriptions-All-Extensions.md', 'Notifications', 'Subscribe to All Extensions']
30
+ - ['usage/notifications/Subscribe_to_All_Extensions.md', 'Notifications', 'Subscribe to All Extensions']
31
+ - ['usage/notifications/Subscribe_for_New_SMS.md', 'Notifications', 'Subscribe for New SMS']
@@ -7,7 +7,7 @@ version = $1
7
7
  Gem::Specification.new do |s|
8
8
  s.name = 'ringcentral_sdk'
9
9
  s.version = version
10
- s.date = '2016-01-21'
10
+ s.date = '2016-02-07'
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']
@@ -22,10 +22,12 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency 'faraday', '~> 0.9', '>= 0.9'
23
23
  s.add_dependency 'faraday_middleware', '~> 0', '>= 0'
24
24
  s.add_dependency 'faraday_middleware-oauth2_refresh', '~> 0'
25
+ s.add_dependency 'jsondoc', '~> 0.1', '>= 0.1.0'
25
26
  s.add_dependency 'mime', '~> 0.4', '>= 0.4.3'
26
27
  s.add_dependency 'mime-types', '~> 1.25' # >= 1.9 '~> 2.5', '>= 2.5'
28
+ s.add_dependency 'mime_builder', '~> 0'
27
29
  s.add_dependency 'multi_json', '~> 1.3'
28
30
  s.add_dependency 'oauth2', '~> 1.0', '>= 1.0.0'
29
31
  s.add_dependency 'pubnub', '~> 3.7', '>= 3.7.3'
30
- s.add_dependency 'timers', '~> 0'
32
+ s.add_dependency 'timers', '~> 4.1'
31
33
  end
data/test/test_client.rb CHANGED
@@ -209,6 +209,49 @@ class RingCentralSdkPlatformTest < Test::Unit::TestCase
209
209
  :text => 'RingCentral fax demo using Ruby SDK!'
210
210
  )
211
211
  assert_equal 'Faraday::Response', res.class.name
212
+
213
+ ######
214
+ # Simple Request - GET
215
+ ######
216
+ request = RingCentralSdk::REST::Request::Simple.new(
217
+ method: 'get',
218
+ url: 'account/~/extension/~/message-store',
219
+ params: {
220
+ direction: 'Inbound',
221
+ messageType: 'SMS'
222
+ }
223
+ )
224
+ assert_equal 'get', request.method
225
+
226
+ res = client.send_request request
227
+ assert_equal 'Faraday::Response', res.class.name
228
+
229
+ ######
230
+ # Simple Request - PUT
231
+ ######
232
+ request = RingCentralSdk::REST::Request::Simple.new(
233
+ method: 'put',
234
+ url: 'account/~/extension/~/message-store/11111111',
235
+ body: {
236
+ readStatus: 'Read'
237
+ }
238
+ )
239
+ assert_equal 'put', request.method
240
+
241
+ res = client.send_request request
242
+ assert_equal 'Faraday::Response', res.class.name
243
+
244
+ ######
245
+ # Simple Request - DELETE
246
+ ######
247
+ request = RingCentralSdk::REST::Request::Simple.new(
248
+ method: 'delete',
249
+ url: 'account/~/extension/~/message-store/11111111',
250
+ )
251
+ assert_equal 'delete', request.method
252
+
253
+ res = client.send_request request
254
+ assert_equal 'Faraday::Response', res.class.name
212
255
  end
213
256
 
214
257
  def test_sms
@@ -0,0 +1,51 @@
1
+ require './test/test_base.rb'
2
+ require 'multi_json'
3
+
4
+ class RingCentralSdkRESTEventTest < Test::Unit::TestCase
5
+ def test_new_sms_count
6
+ data = data_test_json_sms()
7
+
8
+ event = RingCentralSdk::REST::Event.new data
9
+
10
+ assert_equal '11112222-3333-4444-5555-666677778888', event.doc.getAttr('uuid')
11
+ assert_equal 1, event.new_sms_count
12
+ assert_equal -1, event.new_fax_count
13
+ end
14
+
15
+ def test_new_fax_count
16
+ data = data_test_json_fax()
17
+
18
+ event = RingCentralSdk::REST::Event.new data
19
+
20
+ assert_equal '11112222-3333-4444-5555-666677778888', event.doc.getAttr('uuid')
21
+ assert_equal -1, event.new_sms_count
22
+ assert_equal 1, event.new_fax_count
23
+ end
24
+
25
+ def test_new_empty
26
+ event = RingCentralSdk::REST::Event.new
27
+ assert_equal 'RingCentralSdk::REST::Event', event.class.name
28
+ end
29
+
30
+ def test_new_failure
31
+ assert_raise do
32
+ event = RingCentralSdk::REST::Event.new ''
33
+ end
34
+ end
35
+
36
+ def data_test_hash(opts={})
37
+ json = data_test_json()
38
+ hash = MultiJson.decode(json, symbolize_keys: false)
39
+ return hash
40
+ end
41
+
42
+ def data_test_json_sms
43
+ json = '{"uuid":"11112222-3333-4444-5555-666677778888","event":"/restapi/v1.0/account/~/extension/22222222/message-store","timestamp":"2016-01-31T00:15:30.196Z","body":{"extensionId":22222222,"lastUpdated":"2016-01-31T00:15:15.923+0000","changes":[{"type":"SMS","newCount":1,"updatedCount":1}]}}'
44
+ MultiJson.decode(json, symbolize_keys: true)
45
+ end
46
+
47
+ def data_test_json_fax
48
+ json = '{"uuid":"11112222-3333-4444-5555-666677778888","event":"/restapi/v1.0/account/~/extension/22222222/message-store","timestamp":"2016-02-07T14:28:29.010Z","body":{"extensionId":22222222,"lastUpdated":"2016-02-07T14:28:21.961+0000","changes":[{"type":"Fax","newCount":1,"updatedCount":0}]}}'
49
+ MultiJson.decode(json, symbolize_keys: false)
50
+ end
51
+ end
@@ -78,6 +78,14 @@ class RingCentralSdkRESTExtensionPresenceTest < Test::Unit::TestCase
78
78
  end
79
79
 
80
80
  presence.update({:dndStatus=>'TakeAllCalls'})
81
+
82
+ ######
83
+ # Test with good data
84
+ ######
85
+
86
+ assert_raise do
87
+ presence.department_calls_enable true
88
+ end
81
89
  end
82
90
 
83
91
  def data_extension_presence
@@ -88,5 +88,12 @@ class RingCentralSdkHelperFaxTest < Test::Unit::TestCase
88
88
  :parts => [{:text=>'RingCentral fax demo using Ruby SDK!'}]
89
89
  )
90
90
  assert_equal 'account/111111111/extension/222222222/fax', fax6.url()
91
+
92
+ fax7 = RingCentralSdk::REST::Request::Fax.new(
93
+ :coverPageText => "RingCentral fax demo using Ruby SDK!",
94
+ :parts => [{:text=>'RingCentral fax demo using Ruby SDK!'}]
95
+ )
96
+ assert_equal '~', fax7.account_id
97
+ assert_equal '~', fax7.extension_id
91
98
  end
92
99
  end
@@ -2,12 +2,13 @@ require './test/test_base.rb'
2
2
 
3
3
  class RingCentralSdkHelperRequestTest < Test::Unit::TestCase
4
4
  def testSetup
5
-
6
5
  req = RingCentralSdk::REST::Request::Base.new
7
6
 
8
- assert_equal 'get', req.method()
9
- assert_equal '', req.url()
10
- assert_equal '', req.content_type()
11
- assert_equal '', req.body()
7
+ assert_equal 'get', req.method
8
+ assert_equal '', req.url
9
+ assert_equal 'Hash', req.params.class.name
10
+ assert_equal 'Hash', req.headers.class.name
11
+ assert_equal '', req.content_type
12
+ assert_equal '', req.body
12
13
  end
13
14
  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: 1.0.0
4
+ version: 1.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: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2016-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -84,6 +84,26 @@ dependencies:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: jsondoc
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '0.1'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.1.0
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.1'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.1.0
87
107
  - !ruby/object:Gem::Dependency
88
108
  name: mime
89
109
  requirement: !ruby/object:Gem::Requirement
@@ -118,6 +138,20 @@ dependencies:
118
138
  - - "~>"
119
139
  - !ruby/object:Gem::Version
120
140
  version: '1.25'
141
+ - !ruby/object:Gem::Dependency
142
+ name: mime_builder
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
121
155
  - !ruby/object:Gem::Dependency
122
156
  name: multi_json
123
157
  requirement: !ruby/object:Gem::Requirement
@@ -178,14 +212,14 @@ dependencies:
178
212
  requirements:
179
213
  - - "~>"
180
214
  - !ruby/object:Gem::Version
181
- version: '0'
215
+ version: '4.1'
182
216
  type: :runtime
183
217
  prerelease: false
184
218
  version_requirements: !ruby/object:Gem::Requirement
185
219
  requirements:
186
220
  - - "~>"
187
221
  - !ruby/object:Gem::Version
188
- version: '0'
222
+ version: '4.1'
189
223
  description: A Ruby SDK for the RingCentral Connect Platform API
190
224
  email: johncwang@gmail.com
191
225
  executables: []
@@ -204,22 +238,25 @@ files:
204
238
  - lib/ringcentral_sdk/rest/cache/extensions.rb
205
239
  - lib/ringcentral_sdk/rest/client.rb
206
240
  - lib/ringcentral_sdk/rest/config.rb
241
+ - lib/ringcentral_sdk/rest/event.rb
207
242
  - lib/ringcentral_sdk/rest/extension.rb
208
243
  - lib/ringcentral_sdk/rest/extension_presence.rb
209
244
  - lib/ringcentral_sdk/rest/messages.rb
245
+ - lib/ringcentral_sdk/rest/messages_retriever.rb
210
246
  - lib/ringcentral_sdk/rest/request.rb
211
247
  - lib/ringcentral_sdk/rest/request/base.rb
212
248
  - lib/ringcentral_sdk/rest/request/fax.rb
213
249
  - lib/ringcentral_sdk/rest/request/inflator.rb
214
250
  - lib/ringcentral_sdk/rest/request/inflator/contact_info.rb
251
+ - lib/ringcentral_sdk/rest/request/simple.rb
215
252
  - lib/ringcentral_sdk/rest/simple_client.rb
216
253
  - lib/ringcentral_sdk/rest/subscription.rb
217
254
  - mkdocs.yml
218
- - ringcentral_sdk-0.5.2.gem
219
255
  - ringcentral_sdk.gemspec
220
256
  - test/test_base.rb
221
257
  - test/test_client.rb
222
258
  - test/test_config.rb
259
+ - test/test_event.rb
223
260
  - test/test_extension_presence.rb
224
261
  - test/test_helper_fax.rb
225
262
  - test/test_helper_inflator_contact_info.rb
Binary file