ringcentral_sdk 0.5.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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