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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +96 -0
- data/README.md +66 -92
- data/Rakefile +3 -3
- data/lib/ringcentral_sdk/{cache → rest/cache}/extensions.rb +17 -19
- data/lib/ringcentral_sdk/rest/cache.rb +3 -0
- data/lib/ringcentral_sdk/{platform.rb → rest/client.rb} +61 -55
- data/lib/ringcentral_sdk/rest/config.rb +93 -0
- data/lib/ringcentral_sdk/rest/extension.rb +12 -0
- data/lib/ringcentral_sdk/rest/extension_presence.rb +104 -0
- data/lib/ringcentral_sdk/rest/messages.rb +46 -0
- data/lib/ringcentral_sdk/{helpers/request.rb → rest/request/base.rb} +2 -2
- data/lib/ringcentral_sdk/rest/request/fax.rb +121 -0
- data/lib/ringcentral_sdk/{helpers → rest/request}/inflator/contact_info.rb +1 -1
- data/lib/ringcentral_sdk/rest/request/inflator.rb +3 -0
- data/lib/ringcentral_sdk/rest/request.rb +5 -0
- data/lib/ringcentral_sdk/{simple.rb → rest/simple_client.rb} +10 -10
- data/lib/ringcentral_sdk/{subscription.rb → rest/subscription.rb} +8 -8
- data/lib/ringcentral_sdk/rest.rb +15 -0
- data/lib/ringcentral_sdk.rb +3 -7
- data/mkdocs.yml +30 -0
- data/ringcentral_sdk-0.5.2.gem +0 -0
- data/ringcentral_sdk.gemspec +31 -0
- data/test/{test_helper.rb → test_base.rb} +3 -3
- data/test/{test_platform.rb → test_client.rb} +58 -28
- data/test/test_config.rb +29 -0
- data/test/test_extension_presence.rb +154 -0
- data/test/test_helper_fax.rb +42 -39
- data/test/test_helper_inflator_contact_info.rb +3 -3
- data/test/test_helper_request.rb +3 -4
- data/test/test_setup.rb +4 -4
- data/test/test_subscription.rb +9 -9
- metadata +95 -48
- data/lib/ringcentral_sdk/cache.rb +0 -3
- data/lib/ringcentral_sdk/helpers/extension_presence.rb +0 -129
- data/lib/ringcentral_sdk/helpers/fax.rb +0 -160
- data/lib/ringcentral_sdk/helpers/inflator.rb +0 -3
- data/lib/ringcentral_sdk/helpers/messages.rb +0 -19
- data/lib/ringcentral_sdk/helpers.rb +0 -7
@@ -1,9 +1,9 @@
|
|
1
|
-
require './test/
|
1
|
+
require './test/test_base.rb'
|
2
2
|
|
3
3
|
class RingCentralSdkHelperInflatorContactInfoTest < Test::Unit::TestCase
|
4
4
|
def testSetup
|
5
5
|
|
6
|
-
inf = RingCentralSdk::
|
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
|
data/test/test_helper_request.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
require './test/
|
1
|
+
require './test/test_base.rb'
|
2
2
|
|
3
3
|
class RingCentralSdkHelperRequestTest < Test::Unit::TestCase
|
4
4
|
def testSetup
|
5
5
|
|
6
|
-
req = RingCentralSdk::
|
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/
|
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::
|
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::
|
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
|
data/test/test_subscription.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require './test/
|
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.
|
98
|
-
rcsdk.
|
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.
|
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.
|
128
|
-
rcsdk2.
|
129
|
-
rcsdk2.
|
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.
|
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: '
|
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: '
|
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
|
-
-
|
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.
|
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,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
|