ringcentral_sdk 0.5.2 → 1.0.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +96 -0
  5. data/README.md +66 -92
  6. data/Rakefile +3 -3
  7. data/lib/ringcentral_sdk/{cache → rest/cache}/extensions.rb +17 -19
  8. data/lib/ringcentral_sdk/rest/cache.rb +3 -0
  9. data/lib/ringcentral_sdk/{platform.rb → rest/client.rb} +61 -55
  10. data/lib/ringcentral_sdk/rest/config.rb +93 -0
  11. data/lib/ringcentral_sdk/rest/extension.rb +12 -0
  12. data/lib/ringcentral_sdk/rest/extension_presence.rb +104 -0
  13. data/lib/ringcentral_sdk/rest/messages.rb +46 -0
  14. data/lib/ringcentral_sdk/{helpers/request.rb → rest/request/base.rb} +2 -2
  15. data/lib/ringcentral_sdk/rest/request/fax.rb +121 -0
  16. data/lib/ringcentral_sdk/{helpers → rest/request}/inflator/contact_info.rb +1 -1
  17. data/lib/ringcentral_sdk/rest/request/inflator.rb +3 -0
  18. data/lib/ringcentral_sdk/rest/request.rb +5 -0
  19. data/lib/ringcentral_sdk/{simple.rb → rest/simple_client.rb} +10 -10
  20. data/lib/ringcentral_sdk/{subscription.rb → rest/subscription.rb} +8 -8
  21. data/lib/ringcentral_sdk/rest.rb +15 -0
  22. data/lib/ringcentral_sdk.rb +3 -7
  23. data/mkdocs.yml +30 -0
  24. data/ringcentral_sdk-0.5.2.gem +0 -0
  25. data/ringcentral_sdk.gemspec +31 -0
  26. data/test/{test_helper.rb → test_base.rb} +3 -3
  27. data/test/{test_platform.rb → test_client.rb} +58 -28
  28. data/test/test_config.rb +29 -0
  29. data/test/test_extension_presence.rb +154 -0
  30. data/test/test_helper_fax.rb +42 -39
  31. data/test/test_helper_inflator_contact_info.rb +3 -3
  32. data/test/test_helper_request.rb +3 -4
  33. data/test/test_setup.rb +4 -4
  34. data/test/test_subscription.rb +9 -9
  35. metadata +95 -48
  36. data/lib/ringcentral_sdk/cache.rb +0 -3
  37. data/lib/ringcentral_sdk/helpers/extension_presence.rb +0 -129
  38. data/lib/ringcentral_sdk/helpers/fax.rb +0 -160
  39. data/lib/ringcentral_sdk/helpers/inflator.rb +0 -3
  40. data/lib/ringcentral_sdk/helpers/messages.rb +0 -19
  41. data/lib/ringcentral_sdk/helpers.rb +0 -7
@@ -1,9 +1,9 @@
1
- require './test/test_helper.rb'
1
+ require './test/test_base.rb'
2
2
 
3
3
  class RingCentralSdkHelperInflatorContactInfoTest < Test::Unit::TestCase
4
4
  def testSetup
5
5
 
6
- inf = RingCentralSdk::Helpers::Inflator::ContactInfo.new
6
+ inf = RingCentralSdk::REST::Request::Inflator::ContactInfo.new
7
7
 
8
8
  arr1 = inf.inflate_to_array(16505551212)
9
9
  assert_equal 16505551212, arr1[0][:phoneNumber]
@@ -18,4 +18,4 @@ class RingCentralSdkHelperInflatorContactInfoTest < Test::Unit::TestCase
18
18
  assert_equal 16505551212, arr4[0][:phoneNumber]
19
19
 
20
20
  end
21
- end
21
+ end
@@ -1,14 +1,13 @@
1
- require './test/test_helper.rb'
1
+ require './test/test_base.rb'
2
2
 
3
3
  class RingCentralSdkHelperRequestTest < Test::Unit::TestCase
4
4
  def testSetup
5
5
 
6
- req = RingCentralSdk::Helpers::Request.new
6
+ req = RingCentralSdk::REST::Request::Base.new
7
7
 
8
8
  assert_equal 'get', req.method()
9
9
  assert_equal '', req.url()
10
10
  assert_equal '', req.content_type()
11
11
  assert_equal '', req.body()
12
-
13
12
  end
14
- end
13
+ end
data/test/test_setup.rb CHANGED
@@ -1,4 +1,4 @@
1
- require './test/test_helper.rb'
1
+ require './test/test_base.rb'
2
2
 
3
3
  class RingCentralSdkTest < Test::Unit::TestCase
4
4
  def setup
@@ -10,7 +10,7 @@ class RingCentralSdkTest < Test::Unit::TestCase
10
10
  end
11
11
 
12
12
  def test_main
13
- assert_equal 'RingCentralSdk::Platform', @rcsdk.class.name
13
+ assert_equal 'RingCentralSdk::REST::Client', @rcsdk.class.name
14
14
 
15
15
  assert_raise do
16
16
  @rcsdk.request(nil)
@@ -21,7 +21,7 @@ class RingCentralSdkTest < Test::Unit::TestCase
21
21
  'my_app_secret',
22
22
  RingCentralSdk::RC_SERVER_SANDBOX
23
23
  )
24
- assert_equal 'RingCentralSdk::Platform', rcsdk.class.name
24
+ assert_equal 'RingCentralSdk::REST::Client', rcsdk.class.name
25
25
  end
26
26
 
27
27
  def test_login
@@ -50,4 +50,4 @@ class RingCentralSdkTest < Test::Unit::TestCase
50
50
  data = JSON.parse(json, :symbolize_names=>true)
51
51
  return data
52
52
  end
53
- end
53
+ end
@@ -1,4 +1,4 @@
1
- require './test/test_helper.rb'
1
+ require './test/test_base.rb'
2
2
 
3
3
  class RingCentralSdkSubscriptionTest < Test::Unit::TestCase
4
4
  def setup
@@ -11,7 +11,7 @@ class RingCentralSdkSubscriptionTest < Test::Unit::TestCase
11
11
 
12
12
  def test_main
13
13
  sub = @rcsdk.create_subscription()
14
- assert_equal "RingCentralSdk::Subscription", sub.class.name
14
+ assert_equal "RingCentralSdk::REST::Subscription", sub.class.name
15
15
 
16
16
  assert_equal 0, sub.event_filters.length
17
17
 
@@ -94,11 +94,11 @@ class RingCentralSdkSubscriptionTest < Test::Unit::TestCase
94
94
  data = data_test_subscribe()
95
95
  response = Faraday::Response.new
96
96
  response.stubs(:body).returns(data)
97
- rcsdk.client.stubs(:post).returns(response)
98
- rcsdk.client.stubs(:put).returns(response)
97
+ rcsdk.http.stubs(:post).returns(response)
98
+ rcsdk.http.stubs(:put).returns(response)
99
99
  responseDel = Faraday::Response.new
100
100
  responseDel.stubs(:body).returns('')
101
- rcsdk.client.stubs(:delete).returns(responseDel)
101
+ rcsdk.http.stubs(:delete).returns(responseDel)
102
102
  # Stub Pubnub Response
103
103
  Pubnub::Client.any_instance.stubs(:subscribe).returns(nil)
104
104
  Pubnub::Client.any_instance.stubs(:unsubscribe).returns(nil)
@@ -124,9 +124,9 @@ class RingCentralSdkSubscriptionTest < Test::Unit::TestCase
124
124
  sub.remove()
125
125
  # Test Exceptions
126
126
  rcsdk2 = get_rcsdk_authorized()
127
- rcsdk2.client.stubs(:post).raises('error')
128
- rcsdk2.client.stubs(:put).raises('error')
129
- rcsdk2.client.stubs(:delete).raises('error')
127
+ rcsdk2.http.stubs(:post).raises('error')
128
+ rcsdk2.http.stubs(:put).raises('error')
129
+ rcsdk2.http.stubs(:delete).raises('error')
130
130
  sub2 = rcsdk2.create_subscription()
131
131
  assert_raise do
132
132
  sub2.subscribe(['/restapi/v1.0/account/~/extension/~/presence'])
@@ -199,4 +199,4 @@ class RingCentralSdkSubscriptionTest < Test::Unit::TestCase
199
199
 
200
200
  assert_equal 'Pubnub::Client', pub.class.name
201
201
  end
202
- end
202
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcentral_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wang
@@ -10,142 +10,180 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dotenv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: faraday
15
35
  requirement: !ruby/object:Gem::Requirement
16
36
  requirements:
17
- - - ~>
37
+ - - "~>"
18
38
  - !ruby/object:Gem::Version
19
39
  version: '0.9'
20
- - - '>='
40
+ - - ">="
21
41
  - !ruby/object:Gem::Version
22
42
  version: '0.9'
23
43
  type: :runtime
24
44
  prerelease: false
25
45
  version_requirements: !ruby/object:Gem::Requirement
26
46
  requirements:
27
- - - ~>
47
+ - - "~>"
28
48
  - !ruby/object:Gem::Version
29
49
  version: '0.9'
30
- - - '>='
50
+ - - ">="
31
51
  - !ruby/object:Gem::Version
32
52
  version: '0.9'
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: faraday_middleware
35
55
  requirement: !ruby/object:Gem::Requirement
36
56
  requirements:
37
- - - ~>
57
+ - - "~>"
38
58
  - !ruby/object:Gem::Version
39
59
  version: '0'
40
- - - '>='
60
+ - - ">="
41
61
  - !ruby/object:Gem::Version
42
62
  version: '0'
43
63
  type: :runtime
44
64
  prerelease: false
45
65
  version_requirements: !ruby/object:Gem::Requirement
46
66
  requirements:
47
- - - ~>
67
+ - - "~>"
48
68
  - !ruby/object:Gem::Version
49
69
  version: '0'
50
- - - '>='
70
+ - - ">="
51
71
  - !ruby/object:Gem::Version
52
72
  version: '0'
53
73
  - !ruby/object:Gem::Dependency
54
74
  name: faraday_middleware-oauth2_refresh
55
75
  requirement: !ruby/object:Gem::Requirement
56
76
  requirements:
57
- - - '>='
77
+ - - "~>"
58
78
  - !ruby/object:Gem::Version
59
79
  version: '0'
60
80
  type: :runtime
61
81
  prerelease: false
62
82
  version_requirements: !ruby/object:Gem::Requirement
63
83
  requirements:
64
- - - '>='
84
+ - - "~>"
65
85
  - !ruby/object:Gem::Version
66
86
  version: '0'
67
87
  - !ruby/object:Gem::Dependency
68
88
  name: mime
69
89
  requirement: !ruby/object:Gem::Requirement
70
90
  requirements:
71
- - - '>='
91
+ - - "~>"
72
92
  - !ruby/object:Gem::Version
73
- version: '0'
93
+ version: '0.4'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.4.3
74
97
  type: :runtime
75
98
  prerelease: false
76
99
  version_requirements: !ruby/object:Gem::Requirement
77
100
  requirements:
78
- - - '>='
101
+ - - "~>"
79
102
  - !ruby/object:Gem::Version
80
- version: '0'
103
+ version: '0.4'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.4.3
81
107
  - !ruby/object:Gem::Dependency
82
108
  name: mime-types
83
109
  requirement: !ruby/object:Gem::Requirement
84
110
  requirements:
85
- - - '>='
111
+ - - "~>"
86
112
  - !ruby/object:Gem::Version
87
113
  version: '1.25'
88
114
  type: :runtime
89
115
  prerelease: false
90
116
  version_requirements: !ruby/object:Gem::Requirement
91
117
  requirements:
92
- - - '>='
118
+ - - "~>"
93
119
  - !ruby/object:Gem::Version
94
120
  version: '1.25'
95
121
  - !ruby/object:Gem::Dependency
96
122
  name: multi_json
97
123
  requirement: !ruby/object:Gem::Requirement
98
124
  requirements:
99
- - - '>='
125
+ - - "~>"
100
126
  - !ruby/object:Gem::Version
101
- version: '0'
127
+ version: '1.3'
102
128
  type: :runtime
103
129
  prerelease: false
104
130
  version_requirements: !ruby/object:Gem::Requirement
105
131
  requirements:
106
- - - '>='
132
+ - - "~>"
107
133
  - !ruby/object:Gem::Version
108
- version: '0'
134
+ version: '1.3'
109
135
  - !ruby/object:Gem::Dependency
110
136
  name: oauth2
111
137
  requirement: !ruby/object:Gem::Requirement
112
138
  requirements:
113
- - - '>='
139
+ - - "~>"
114
140
  - !ruby/object:Gem::Version
115
- version: '0'
141
+ version: '1.0'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 1.0.0
116
145
  type: :runtime
117
146
  prerelease: false
118
147
  version_requirements: !ruby/object:Gem::Requirement
119
148
  requirements:
120
- - - '>='
149
+ - - "~>"
121
150
  - !ruby/object:Gem::Version
122
- version: '0'
151
+ version: '1.0'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 1.0.0
123
155
  - !ruby/object:Gem::Dependency
124
156
  name: pubnub
125
157
  requirement: !ruby/object:Gem::Requirement
126
158
  requirements:
127
- - - ~>
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '3.7'
162
+ - - ">="
128
163
  - !ruby/object:Gem::Version
129
164
  version: 3.7.3
130
165
  type: :runtime
131
166
  prerelease: false
132
167
  version_requirements: !ruby/object:Gem::Requirement
133
168
  requirements:
134
- - - ~>
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '3.7'
172
+ - - ">="
135
173
  - !ruby/object:Gem::Version
136
174
  version: 3.7.3
137
175
  - !ruby/object:Gem::Dependency
138
176
  name: timers
139
177
  requirement: !ruby/object:Gem::Requirement
140
178
  requirements:
141
- - - '>='
179
+ - - "~>"
142
180
  - !ruby/object:Gem::Version
143
181
  version: '0'
144
182
  type: :runtime
145
183
  prerelease: false
146
184
  version_requirements: !ruby/object:Gem::Requirement
147
185
  requirements:
148
- - - '>='
186
+ - - "~>"
149
187
  - !ruby/object:Gem::Version
150
188
  version: '0'
151
189
  description: A Ruby SDK for the RingCentral Connect Platform API
@@ -154,29 +192,38 @@ executables: []
154
192
  extensions: []
155
193
  extra_rdoc_files: []
156
194
  files:
157
- - lib/ringcentral_sdk/cache/extensions.rb
158
- - lib/ringcentral_sdk/cache.rb
159
- - lib/ringcentral_sdk/helpers/extension_presence.rb
160
- - lib/ringcentral_sdk/helpers/fax.rb
161
- - lib/ringcentral_sdk/helpers/inflator/contact_info.rb
162
- - lib/ringcentral_sdk/helpers/inflator.rb
163
- - lib/ringcentral_sdk/helpers/messages.rb
164
- - lib/ringcentral_sdk/helpers/request.rb
165
- - lib/ringcentral_sdk/helpers.rb
166
- - lib/ringcentral_sdk/platform.rb
167
- - lib/ringcentral_sdk/simple.rb
168
- - lib/ringcentral_sdk/subscription.rb
169
- - lib/ringcentral_sdk.rb
170
195
  - CHANGELOG.md
171
196
  - Gemfile
197
+ - Gemfile.lock
172
198
  - LICENSE.txt
173
- - Rakefile
174
199
  - README.md
175
- - test/test_helper.rb
200
+ - Rakefile
201
+ - lib/ringcentral_sdk.rb
202
+ - lib/ringcentral_sdk/rest.rb
203
+ - lib/ringcentral_sdk/rest/cache.rb
204
+ - lib/ringcentral_sdk/rest/cache/extensions.rb
205
+ - lib/ringcentral_sdk/rest/client.rb
206
+ - lib/ringcentral_sdk/rest/config.rb
207
+ - lib/ringcentral_sdk/rest/extension.rb
208
+ - lib/ringcentral_sdk/rest/extension_presence.rb
209
+ - lib/ringcentral_sdk/rest/messages.rb
210
+ - lib/ringcentral_sdk/rest/request.rb
211
+ - lib/ringcentral_sdk/rest/request/base.rb
212
+ - lib/ringcentral_sdk/rest/request/fax.rb
213
+ - lib/ringcentral_sdk/rest/request/inflator.rb
214
+ - lib/ringcentral_sdk/rest/request/inflator/contact_info.rb
215
+ - lib/ringcentral_sdk/rest/simple_client.rb
216
+ - lib/ringcentral_sdk/rest/subscription.rb
217
+ - mkdocs.yml
218
+ - ringcentral_sdk-0.5.2.gem
219
+ - ringcentral_sdk.gemspec
220
+ - test/test_base.rb
221
+ - test/test_client.rb
222
+ - test/test_config.rb
223
+ - test/test_extension_presence.rb
176
224
  - test/test_helper_fax.rb
177
225
  - test/test_helper_inflator_contact_info.rb
178
226
  - test/test_helper_request.rb
179
- - test/test_platform.rb
180
227
  - test/test_setup.rb
181
228
  - test/test_subscription.rb
182
229
  homepage: https://github.com/grokify/
@@ -189,17 +236,17 @@ require_paths:
189
236
  - lib
190
237
  required_ruby_version: !ruby/object:Gem::Requirement
191
238
  requirements:
192
- - - '>='
239
+ - - ">="
193
240
  - !ruby/object:Gem::Version
194
241
  version: '0'
195
242
  required_rubygems_version: !ruby/object:Gem::Requirement
196
243
  requirements:
197
- - - '>='
244
+ - - ">="
198
245
  - !ruby/object:Gem::Version
199
246
  version: '0'
200
247
  requirements: []
201
248
  rubyforge_project:
202
- rubygems_version: 2.1.5
249
+ rubygems_version: 2.4.8
203
250
  signing_key:
204
251
  specification_version: 4
205
252
  summary: RingCentral SDK - Ruby SDK for the RingCentral Connect Platform API
@@ -1,3 +0,0 @@
1
- module RingCentralSdk::Cache
2
- autoload :Extensions, 'ringcentral_sdk/cache/extensions'
3
- end
@@ -1,129 +0,0 @@
1
- module RingCentralSdk::Helpers
2
- class ExtensionPresence
3
-
4
- attr_accessor :rc_api
5
- attr_accessor :account_id
6
- attr_accessor :exension_id
7
- attr_accessor :presence_info
8
-
9
- def initialize(rc_api, extension_id=nil)
10
- @rc_api = rc_api
11
- @account_id = '~'
12
- @extension_id = extension_id.to_s
13
- @presence_info = {}
14
- end
15
-
16
- def retrieve()
17
- if @extension_id !~ /^[0-9]+$/
18
- raise "extension_id is not an integer"
19
- end
20
-
21
- res = @rc_api.client.get do |req|
22
- req.url "account/#{@account_id}/extension/#{@extension_id}/presence"
23
- end
24
-
25
- @presence_info = res.body
26
-
27
- return @presence_info
28
- end
29
-
30
- def department_calls_enable(enable)
31
- retrieve()
32
-
33
- if !@presence_info.has_key?('dndStatus')
34
- raise 'invalid presence info'
35
- end
36
-
37
- current_status = @presence_info['dndStatus']
38
- new_status = enable ?
39
- status_enable_dnd_department_calls(current_status) :
40
- status_disable_dnd_department_calls(current_status)
41
-
42
- if current_status != new_status
43
- update({:dndStatus => new_status})
44
- end
45
- end
46
-
47
- def department_calls_enabled?(reload=false)
48
- if reload
49
- retrieve()
50
- elsif !@presence_info.has_key?('dndStatus')
51
- retrieve()
52
- end
53
-
54
- current_status = @presence_info['dndStatus']
55
-
56
- status_enabled = {
57
- 'DoNotAcceptAnyCalls' => false,
58
- 'DoNotAcceptDepartmentCalls' => false,
59
- 'TakeAllCalls' => true,
60
- 'TakeDepartmentCallsOnly' => true
61
- }
62
-
63
- return status_enabled.has_key?(current_status) ?
64
- status_enabled[current_status] : nil
65
- end
66
-
67
- def disable_department_calls()
68
- retrieve()
69
-
70
- if !@presence_info.has_key?('dndStatus')
71
- raise 'invalid presence info'
72
- end
73
-
74
- current_status = @presence_info['dndStatus']
75
- new_status = status_disable_dnd_department_calls(current_status)
76
-
77
- if current_status != new_status
78
- update({:dndStatus => new_status})
79
- end
80
- end
81
-
82
- def update(body=nil)
83
- if body.nil?
84
- raise 'HTTP request body is required to update presence'
85
- end
86
-
87
- res = @rc_api.client.put do |req|
88
- req.url "account/#{@account_id}/extension/#{@extension_id}/presence"
89
- req.headers['Content-Type'] = 'application/json'
90
- req.body = body
91
- end
92
-
93
- @presence_info = res.body
94
-
95
- return @presence_info
96
- end
97
-
98
- def status_enable_dnd_department_calls(current_status)
99
- new_status = current_status
100
-
101
- new_statuses = {
102
- 'DoNotAcceptAnyCalls' => 'TakeDepartmentCallsOnly',
103
- 'DoNotAcceptDepartmentCalls' => 'TakeAllCalls'
104
- }
105
-
106
- if new_statuses.has_key?(current_status.to_s)
107
- new_status = new_statuses[current_status.to_s]
108
- end
109
-
110
- return new_status
111
- end
112
-
113
- def status_disable_dnd_department_calls(current_status)
114
- new_status = current_status
115
-
116
- new_statuses = {
117
- 'TakeAllCalls' => 'DoNotAcceptDepartmentCalls',
118
- 'TakeDepartmentCallsOnly' => 'DoNotAcceptAnyCalls'
119
- }
120
-
121
- if new_statuses.has_key?(current_status.to_s)
122
- new_status = new_statuses[current_status.to_s]
123
- end
124
-
125
- return new_status
126
- end
127
-
128
- end
129
- end