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.
- 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
|