restcomm-ruby 1.2.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 (149) hide show
  1. data/AUTHORS.md +38 -0
  2. data/CHANGES.md +171 -0
  3. data/Gemfile +11 -0
  4. data/LICENSE +662 -0
  5. data/LICENSE.md +19 -0
  6. data/Makefile +12 -0
  7. data/README.md +155 -0
  8. data/Rakefile +10 -0
  9. data/conf/cacert.pem +3376 -0
  10. data/docs/Makefile +130 -0
  11. data/docs/_themes/LICENSE +45 -0
  12. data/docs/_themes/README.rst +25 -0
  13. data/docs/_themes/flask_theme_support.py +86 -0
  14. data/docs/_themes/kr/layout.html +32 -0
  15. data/docs/_themes/kr/relations.html +19 -0
  16. data/docs/_themes/kr/static/flasky.css_t +469 -0
  17. data/docs/_themes/kr/static/small_flask.css +70 -0
  18. data/docs/_themes/kr/theme.conf +7 -0
  19. data/docs/_themes/kr_small/layout.html +22 -0
  20. data/docs/_themes/kr_small/static/flasky.css_t +287 -0
  21. data/docs/_themes/kr_small/theme.conf +10 -0
  22. data/docs/changelog.rst +1 -0
  23. data/docs/conf.py +266 -0
  24. data/docs/faq.rst +42 -0
  25. data/docs/getting-started.rst +100 -0
  26. data/docs/index.rst +109 -0
  27. data/docs/make.bat +170 -0
  28. data/docs/src/pip-delete-this-directory.txt +5 -0
  29. data/docs/usage/accounts.rst +96 -0
  30. data/docs/usage/addresses.rst +102 -0
  31. data/docs/usage/applications.rst +111 -0
  32. data/docs/usage/basics.rst +120 -0
  33. data/docs/usage/caller-ids.rst +47 -0
  34. data/docs/usage/conferences.rst +112 -0
  35. data/docs/usage/errors.rst +31 -0
  36. data/docs/usage/messages.rst +142 -0
  37. data/docs/usage/notifications.rst +72 -0
  38. data/docs/usage/phone-calls.rst +193 -0
  39. data/docs/usage/phone-numbers.rst +192 -0
  40. data/docs/usage/queues.rst +117 -0
  41. data/docs/usage/recordings.rst +102 -0
  42. data/docs/usage/sip.rst +108 -0
  43. data/docs/usage/token-generation.rst +96 -0
  44. data/docs/usage/transcriptions.rst +34 -0
  45. data/docs/usage/twiml.rst +69 -0
  46. data/docs/usage/validation.rst +107 -0
  47. data/examples/examples.rb +200 -0
  48. data/examples/print-call-log.rb +25 -0
  49. data/lib/rack/restcomm_webhook_authentication.rb +47 -0
  50. data/lib/restcomm-ruby.rb +103 -0
  51. data/lib/restcomm-ruby/rest/accounts.rb +17 -0
  52. data/lib/restcomm-ruby/rest/addresses.rb +12 -0
  53. data/lib/restcomm-ruby/rest/addresses/dependent_phone_numbers.rb +6 -0
  54. data/lib/restcomm-ruby/rest/applications.rb +6 -0
  55. data/lib/restcomm-ruby/rest/authorized_connect_apps.rb +6 -0
  56. data/lib/restcomm-ruby/rest/available_phone_numbers.rb +13 -0
  57. data/lib/restcomm-ruby/rest/available_phone_numbers/country.rb +10 -0
  58. data/lib/restcomm-ruby/rest/available_phone_numbers/local.rb +11 -0
  59. data/lib/restcomm-ruby/rest/available_phone_numbers/mobile.rb +11 -0
  60. data/lib/restcomm-ruby/rest/available_phone_numbers/toll_free.rb +11 -0
  61. data/lib/restcomm-ruby/rest/call_feedback.rb +28 -0
  62. data/lib/restcomm-ruby/rest/call_feedback_summary.rb +13 -0
  63. data/lib/restcomm-ruby/rest/calls.rb +37 -0
  64. data/lib/restcomm-ruby/rest/client.rb +555 -0
  65. data/lib/restcomm-ruby/rest/conferences.rb +12 -0
  66. data/lib/restcomm-ruby/rest/conferences/participants.rb +23 -0
  67. data/lib/restcomm-ruby/rest/connect_apps.rb +6 -0
  68. data/lib/restcomm-ruby/rest/errors.rb +14 -0
  69. data/lib/restcomm-ruby/rest/incoming_phone_numbers.rb +17 -0
  70. data/lib/restcomm-ruby/rest/incoming_phone_numbers/local.rb +13 -0
  71. data/lib/restcomm-ruby/rest/incoming_phone_numbers/mobile.rb +13 -0
  72. data/lib/restcomm-ruby/rest/incoming_phone_numbers/toll_free.rb +13 -0
  73. data/lib/restcomm-ruby/rest/instance_resource.rb +88 -0
  74. data/lib/restcomm-ruby/rest/list_resource.rb +132 -0
  75. data/lib/restcomm-ruby/rest/media.rb +14 -0
  76. data/lib/restcomm-ruby/rest/messages.rb +23 -0
  77. data/lib/restcomm-ruby/rest/next_gen_list_resource.rb +29 -0
  78. data/lib/restcomm-ruby/rest/notifications.rb +6 -0
  79. data/lib/restcomm-ruby/rest/outgoing_caller_ids.rb +25 -0
  80. data/lib/restcomm-ruby/rest/queues.rb +12 -0
  81. data/lib/restcomm-ruby/rest/queues/members.rb +29 -0
  82. data/lib/restcomm-ruby/rest/recordings.rb +35 -0
  83. data/lib/restcomm-ruby/rest/sandbox.rb +5 -0
  84. data/lib/restcomm-ruby/rest/sip.rb +10 -0
  85. data/lib/restcomm-ruby/rest/sip/credential_lists.rb +11 -0
  86. data/lib/restcomm-ruby/rest/sip/credential_lists/credentials.rb +6 -0
  87. data/lib/restcomm-ruby/rest/sip/domains.rb +12 -0
  88. data/lib/restcomm-ruby/rest/sip/domains/credential_list_mappings.rb +6 -0
  89. data/lib/restcomm-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +6 -0
  90. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists.rb +11 -0
  91. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +6 -0
  92. data/lib/restcomm-ruby/rest/sms.rb +11 -0
  93. data/lib/restcomm-ruby/rest/sms/messages.rb +39 -0
  94. data/lib/restcomm-ruby/rest/sms/short_codes.rb +8 -0
  95. data/lib/restcomm-ruby/rest/task_router/activities.rb +8 -0
  96. data/lib/restcomm-ruby/rest/task_router/events.rb +8 -0
  97. data/lib/restcomm-ruby/rest/task_router/reservations.rb +8 -0
  98. data/lib/restcomm-ruby/rest/task_router/task_queues.rb +8 -0
  99. data/lib/restcomm-ruby/rest/task_router/task_queues_statistics.rb +15 -0
  100. data/lib/restcomm-ruby/rest/task_router/tasks.rb +15 -0
  101. data/lib/restcomm-ruby/rest/task_router/workers.rb +8 -0
  102. data/lib/restcomm-ruby/rest/task_router/workers_statistics.rb +8 -0
  103. data/lib/restcomm-ruby/rest/task_router/workflow_statistics.rb +7 -0
  104. data/lib/restcomm-ruby/rest/task_router/workflows.rb +8 -0
  105. data/lib/restcomm-ruby/rest/task_router/workspace_statistics.rb +7 -0
  106. data/lib/restcomm-ruby/rest/task_router/workspaces.rb +15 -0
  107. data/lib/restcomm-ruby/rest/tokens.rb +7 -0
  108. data/lib/restcomm-ruby/rest/transcriptions.rb +6 -0
  109. data/lib/restcomm-ruby/rest/usage.rb +10 -0
  110. data/lib/restcomm-ruby/rest/usage/records.rb +21 -0
  111. data/lib/restcomm-ruby/rest/usage/triggers.rb +12 -0
  112. data/lib/restcomm-ruby/rest/utils.rb +49 -0
  113. data/lib/restcomm-ruby/task_router.rb +0 -0
  114. data/lib/restcomm-ruby/task_router/capability.rb +87 -0
  115. data/lib/restcomm-ruby/twiml/response.rb +16 -0
  116. data/lib/restcomm-ruby/util.rb +15 -0
  117. data/lib/restcomm-ruby/util/capability.rb +64 -0
  118. data/lib/restcomm-ruby/util/configuration.rb +7 -0
  119. data/lib/restcomm-ruby/util/request_validator.rb +37 -0
  120. data/lib/restcomm-ruby/version.rb +3 -0
  121. data/restcomm-ruby.gemspec +34 -0
  122. data/spec/rack/twilio_webhook_authentication_spec.rb +110 -0
  123. data/spec/rest/account_spec.rb +89 -0
  124. data/spec/rest/address_spec.rb +11 -0
  125. data/spec/rest/call_feedback_spec.rb +12 -0
  126. data/spec/rest/call_feedback_summary_spec.rb +9 -0
  127. data/spec/rest/call_spec.rb +22 -0
  128. data/spec/rest/client_spec.rb +258 -0
  129. data/spec/rest/conference_spec.rb +11 -0
  130. data/spec/rest/instance_resource_spec.rb +15 -0
  131. data/spec/rest/message_spec.rb +12 -0
  132. data/spec/rest/numbers_spec.rb +58 -0
  133. data/spec/rest/queue_spec.rb +11 -0
  134. data/spec/rest/recording_spec.rb +11 -0
  135. data/spec/rest/sms/message_spec.rb +37 -0
  136. data/spec/rest/sms/messages_spec.rb +36 -0
  137. data/spec/rest/task_router/reservation_spec.rb +9 -0
  138. data/spec/rest/task_router/task_queue_spec.rb +9 -0
  139. data/spec/rest/token_spec.rb +7 -0
  140. data/spec/rest/utils_spec.rb +45 -0
  141. data/spec/spec_helper.rb +15 -0
  142. data/spec/support/fakeweb.rb +2 -0
  143. data/spec/task_router_spec.rb +114 -0
  144. data/spec/twilio_spec.rb +15 -0
  145. data/spec/util/capability_spec.rb +186 -0
  146. data/spec/util/configuration_spec.rb +13 -0
  147. data/spec/util/request_validator_spec.rb +93 -0
  148. data/spec/util/url_encode_spec.rb +12 -0
  149. metadata +298 -0
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Address do
4
+ it 'should set up a dependent phone numbers resources object' do
5
+ address = Restcomm::REST::Address.new('someUri', 'someClient')
6
+ expect(address).to respond_to(:dependent_phone_numbers)
7
+ expect(address.dependent_phone_numbers.instance_variable_get('@path')).to eq(
8
+ 'someUri/DependentPhoneNumbers'
9
+ )
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Feedback do
4
+ before do
5
+ @call = Restcomm::REST::Call.new('someUri', 'someClient')
6
+ end
7
+
8
+ it 'sets up a feedback resources object' do
9
+ expect(@call).to respond_to(:feedback)
10
+ expect(@call.feedback.instance_variable_get('@path')).to eq('someUri/Feedback')
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::FeedbackSummary do
4
+ it 'creates a feedback summary object' do
5
+ calls = Restcomm::REST::Calls.new('someUri', 'someClient')
6
+ expect(calls).to respond_to(:feedback_summary)
7
+ expect(calls.feedback_summary.instance_variable_get('@path')).to eq('someUri/FeedbackSummary')
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Call do
4
+
5
+ before do
6
+ @call = Restcomm::REST::Call.new('someUri', 'someClient')
7
+ end
8
+
9
+ it 'sets up a recordings resources object' do
10
+ expect(@call).to respond_to(:recordings)
11
+ expect(@call.recordings.instance_variable_get('@path')).to eq(
12
+ 'someUri/Recordings'
13
+ )
14
+ end
15
+
16
+ it 'sets up a notifications resources object' do
17
+ expect(@call).to respond_to(:notifications)
18
+ expect(@call.notifications.instance_variable_get('@path')).to eq(
19
+ 'someUri/Notifications'
20
+ )
21
+ end
22
+ end
@@ -0,0 +1,258 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Client do
4
+ describe 'config at class level' do
5
+ after(:each) do
6
+ Restcomm.instance_variable_set('@configuration', nil)
7
+ end
8
+
9
+ it 'should set the account sid and auth token with a config block' do
10
+ Restcomm.configure do |config|
11
+ config.account_sid = 'someSid'
12
+ config.auth_token = 'someToken'
13
+ end
14
+
15
+ client = Restcomm::REST::Client.new
16
+ expect(client.account_sid).to eq('someSid')
17
+ expect(client.instance_variable_get('@auth_token')).to eq('someToken')
18
+ end
19
+
20
+ it 'should overwrite account sid and auth token if passed to initializer' do
21
+ Restcomm.configure do |config|
22
+ config.account_sid = 'someSid'
23
+ config.auth_token = 'someToken'
24
+ end
25
+
26
+ client = Restcomm::REST::Client.new 'otherSid', 'otherToken'
27
+ expect(client.account_sid).to eq('otherSid')
28
+ expect(client.instance_variable_get('@auth_token')).to eq('otherToken')
29
+ end
30
+
31
+ it 'should overwrite the account sid if only the sid is given' do
32
+ Restcomm.configure do |config|
33
+ config.account_sid = 'someSid'
34
+ config.auth_token = 'someToken'
35
+ end
36
+
37
+ client = Restcomm::REST::Client.new 'otherSid'
38
+ expect(client.account_sid).to eq('otherSid')
39
+ expect(client.instance_variable_get('@auth_token')).to eq('someToken')
40
+ end
41
+
42
+ it 'should allow options after setting up auth with config' do
43
+ Restcomm.configure do |config|
44
+ config.account_sid = 'someSid'
45
+ config.auth_token = 'someToken'
46
+ end
47
+
48
+ client = Restcomm::REST::Client.new :host => 'api.fakerestcomm.com'
49
+
50
+ connection = client.instance_variable_get('@connection')
51
+ expect(connection.address).to eq('api.fakerestcomm.com')
52
+ end
53
+
54
+ it 'should throw an argument error if the sid and token isn\'t set' do
55
+ expect { Restcomm::REST::Client.new }.to raise_error(ArgumentError)
56
+ end
57
+
58
+ it 'should throw an argument error if only the account_sid is set' do
59
+ expect { Restcomm::REST::Client.new 'someSid' }.to raise_error(ArgumentError)
60
+ end
61
+ end
62
+
63
+ it 'should not raise an error if the response body is empty' do
64
+ FakeWeb.register_uri(:any, %r/api\.restcomm\.com/, body: '')
65
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
66
+ Restcomm::REST::IncomingPhoneNumber.new('/phone_number', restcomm).delete
67
+ end
68
+
69
+ it 'should not raise an error if the response body is nil' do
70
+ response = double(:response, body: nil)
71
+ connection = double(:connection, request: response)
72
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
73
+ restcomm.instance_variable_set(:@connection, connection)
74
+ Restcomm::REST::IncomingPhoneNumber.new('/phone_number', restcomm).delete
75
+ end
76
+
77
+ it 'should set up a new client instance with the given sid and token' do
78
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
79
+ expect(restcomm.account_sid).to eq('someSid')
80
+ expect(restcomm.instance_variable_get('@auth_token')).to eq('someToken')
81
+ end
82
+
83
+ it 'should set up the proper default http ssl connection' do
84
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
85
+ connection = restcomm.instance_variable_get('@connection')
86
+ expect(connection.address).to eq('api.restcomm.com')
87
+ expect(connection.port).to eq(443)
88
+ expect(connection.use_ssl?).to eq(true)
89
+ end
90
+
91
+ it 'should set up the requested ssl verification ca_file if provided' do
92
+ restcomm = Restcomm::REST::Client.new(
93
+ 'someSid', 'someToken', ssl_ca_file: '/path/to/ca/file'
94
+ )
95
+ connection = restcomm.instance_variable_get('@connection')
96
+ expect(connection.ca_file).to eq('/path/to/ca/file')
97
+ end
98
+
99
+ it 'should set up the proper http ssl connection when a different ' \
100
+ 'domain is given' do
101
+ restcomm = Restcomm::REST::Client.new(
102
+ 'someSid', 'someToken', host: 'api.fakerestcomm.com'
103
+ )
104
+ connection = restcomm.instance_variable_get('@connection')
105
+ expect(connection.address).to eq('api.fakerestcomm.com')
106
+ expect(connection.port).to eq(443)
107
+ expect(connection.use_ssl?).to eq(true)
108
+ end
109
+
110
+ it 'should adjust the open and read timeouts on the underlying Net::HTTP ' \
111
+ 'object when asked' do
112
+ timeout = rand(30)
113
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken', timeout: timeout)
114
+ connection = restcomm.instance_variable_get('@connection')
115
+ expect(connection.port).to eq(443)
116
+ expect(connection.use_ssl?).to eq(true)
117
+ expect(connection.open_timeout).to eq(timeout)
118
+ expect(connection.read_timeout).to eq(timeout)
119
+ end
120
+
121
+ it 'should set up the proper http ssl connection when a proxy_host is ' \
122
+ 'given' do
123
+ restcomm = Restcomm::REST::Client.new(
124
+ 'someSid',
125
+ 'someToken',
126
+ host: 'api.fakerestcomm.com',
127
+ proxy_addr: 'localhost'
128
+ )
129
+ connection = restcomm.instance_variable_get('@connection')
130
+ expect(connection.proxy?).to eq(true)
131
+ expect(connection.proxy_address).to eq('localhost')
132
+ expect(connection.proxy_port).to eq(80)
133
+ expect(connection.address).to eq('api.fakerestcomm.com')
134
+ expect(connection.port).to eq(443)
135
+ expect(connection.use_ssl?).to eq(true)
136
+ end
137
+
138
+ it 'should set up the proper http ssl connection when a proxy_host and ' \
139
+ 'proxy_port are given' do
140
+ restcomm = Restcomm::REST::Client.new(
141
+ 'someSid',
142
+ 'someToken',
143
+ host: 'api.fakerestcomm.com',
144
+ proxy_addr: 'localhost',
145
+ proxy_port: 13128
146
+ )
147
+ connection = restcomm.instance_variable_get('@connection')
148
+ expect(connection.proxy?).to eq(true)
149
+ expect(connection.proxy_address).to eq('localhost')
150
+ expect(connection.proxy_port).to eq(13128)
151
+ expect(connection.address).to eq('api.fakerestcomm.com')
152
+ expect(connection.port).to eq(443)
153
+ expect(connection.use_ssl?).to eq(true)
154
+ end
155
+
156
+ it 'should set up an accounts resources object' do
157
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
158
+ expect(restcomm).to respond_to(:accounts)
159
+ expect(restcomm.accounts.instance_variable_get('@path')).to eq(
160
+ '/2010-04-01/Accounts'
161
+ )
162
+ end
163
+
164
+ it 'should set up an account object with the given sid' do
165
+ restcomm = Restcomm::REST::Client.new('someSid', 'someToken')
166
+ expect(restcomm).to respond_to(:account)
167
+ expect(restcomm.account.instance_variable_get('@path')).to eq(
168
+ '/2010-04-01/Accounts/someSid'
169
+ )
170
+ end
171
+
172
+ [
173
+ :sandbox, :available_phone_numbers, :incoming_phone_numbers,
174
+ :calls, :outgoing_caller_ids, :conferences, :sms, :recordings,
175
+ :transcriptions, :notifications, :applications, :connect_apps,
176
+ :authorized_connect_apps, :queues, :usage, :messages, :media, :sip
177
+ ].each do |method|
178
+ it "should delegate the client method #{method} to the account object" do
179
+ client = Restcomm::REST::Client.new('someSid', 'someToken')
180
+ expect(client).to respond_to(method)
181
+ expect(client.send(method)).to eq(client.account.send(method))
182
+ end
183
+ end
184
+
185
+ it 'should throw an argument error if the workspace_sid is not set' do
186
+ expect { Restcomm::REST::TaskRouterClient.new 'someSid', 'someToken' }.to raise_error(ArgumentError)
187
+ end
188
+
189
+ it 'should have its host set to taskrouter.restcomm.com' do
190
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
191
+ connection = client.instance_variable_get('@connection')
192
+ expect(connection.address).to eq('taskrouter.restcomm.com')
193
+ end
194
+
195
+ it 'should have task queue statistics resource' do
196
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{}')
197
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
198
+ expect(client).to respond_to(:task_queue_statistics)
199
+ expect(client.task_queue_statistics('someSid').instance_variable_get('@path')).to eq('/v1/Workspaces/someSid/TaskQueues/someSid/Statistics')
200
+ end
201
+
202
+ it 'should have task queues statistics resource' do
203
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{"meta": {"key": "task_queues_statistics"}, "task_queues_statistics": [{"task_queue_sid": "WQ123"}]}')
204
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
205
+ expect(client).to respond_to(:task_queues_statistics)
206
+ expect(client.task_queues_statistics[0].task_queue_sid).to eq('WQ123')
207
+ end
208
+
209
+ it 'should have worker statistics resource' do
210
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{}')
211
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
212
+ expect(client).to respond_to(:worker_statistics)
213
+ expect(client.worker_statistics('someSid').instance_variable_get('@path')).to eq('/v1/Workspaces/someSid/Workers/someSid/Statistics')
214
+ end
215
+
216
+ it 'should have workers statistics resource' do
217
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{}')
218
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
219
+ expect(client).to respond_to(:workers_statistics)
220
+ expect(client.workers_statistics.instance_variable_get('@path')).to eq('/v1/Workspaces/someSid/Workers/Statistics')
221
+ end
222
+
223
+ it 'should have workflow statistics resource' do
224
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{}')
225
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
226
+ expect(client).to respond_to(:workflow_statistics)
227
+ expect(client.workflow_statistics('someSid').instance_variable_get('@path')).to eq('/v1/Workspaces/someSid/Workflows/someSid/Statistics')
228
+ end
229
+
230
+ it 'should have workspace statistics resource' do
231
+ FakeWeb.register_uri(:get, %r/taskrouter\.restcomm\.com/, body: '{}')
232
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
233
+ expect(client).to respond_to(:workspace_statistics)
234
+ expect(client.workspace_statistics.instance_variable_get('@path')).to eq('/v1/Workspaces/someSid/Statistics')
235
+ end
236
+
237
+ it 'should set up a workspaces resource object' do
238
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
239
+ expect(client).to respond_to(:workspaces)
240
+ expect(client.workspaces.instance_variable_get('@path')).to eq('/v1/Workspaces')
241
+ end
242
+
243
+ it 'should set up a workspace resource object' do
244
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
245
+ expect(client).to respond_to(:workspace)
246
+ expect(client.workspace.instance_variable_get('@path')).to eq('/v1/Workspaces/someSid')
247
+ end
248
+
249
+ [
250
+ :activities, :tasks, :task_queues, :workers, :workflows
251
+ ].each do |method|
252
+ it "should delegate the client method #{method} to the workspace object" do
253
+ client = Restcomm::REST::TaskRouterClient.new('someSid', 'someToken', 'someSid')
254
+ expect(client).to respond_to(method)
255
+ expect(client.send(method)).to eq(client.workspace.send(method))
256
+ end
257
+ end
258
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Conference do
4
+ it 'should set up a participants resources object' do
5
+ conference = Restcomm::REST::Conference.new('someUri', 'someClient')
6
+ expect(conference).to respond_to(:participants)
7
+ expect(conference.participants.instance_variable_get('@path')).to eq(
8
+ 'someUri/Participants'
9
+ )
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::InstanceResource do
4
+ it 'should set up an internal reference to the uri and client' do
5
+ resource = Restcomm::REST::InstanceResource.new('some/uri', 'someClient')
6
+ expect(resource.instance_variable_get('@path')).to eq('some/uri')
7
+ expect(resource.instance_variable_get('@client')).to eq('someClient')
8
+ end
9
+
10
+ it 'should set up object properties if passed' do
11
+ params = { 'SomeKey' => 'someValue' }
12
+ resource = Restcomm::REST::InstanceResource.new('uri', 'client', params)
13
+ expect(resource.some_key).to eq('someValue')
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Message do
4
+ before do
5
+ @message = Restcomm::REST::Message.new('someUri', 'someClient')
6
+ end
7
+
8
+ it 'sets up a media resources object' do
9
+ expect(@message).to respond_to(:media)
10
+ expect(@message.media.instance_variable_get('@path')).to eq('someUri/Media')
11
+ end
12
+ end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Country do
4
+
5
+ before do
6
+ @country = Restcomm::REST::Country.new('someUri', 'someClient')
7
+ end
8
+
9
+ it 'sets up a local resources object' do
10
+ expect(@country).to respond_to(:local)
11
+ expect(@country.local.instance_variable_get('@path')).to eq('someUri/Local')
12
+ end
13
+
14
+ it 'sets up a toll_free resources object' do
15
+ expect(@country).to respond_to(:toll_free)
16
+ expect(@country.toll_free.instance_variable_get('@path')).to eq(
17
+ 'someUri/TollFree'
18
+ )
19
+ end
20
+
21
+ it 'sets up a mobile resources object' do
22
+ expect(@country).to respond_to(:mobile)
23
+ expect(@country.mobile.instance_variable_get('@path')).to eq(
24
+ 'someUri/Mobile'
25
+ )
26
+ end
27
+
28
+ end
29
+
30
+ describe Restcomm::REST::NumberType do
31
+
32
+ before do
33
+ @incoming_phone_numbers = Restcomm::REST::IncomingPhoneNumbers.new(
34
+ 'someUri', 'someClient'
35
+ )
36
+ end
37
+
38
+ it 'sets up a local resources object' do
39
+ expect(@incoming_phone_numbers).to respond_to(:local)
40
+ expect(@incoming_phone_numbers.local.instance_variable_get('@path')).to eq(
41
+ 'someUri/Local'
42
+ )
43
+ end
44
+
45
+ it 'sets up a toll_free resources object' do
46
+ expect(@incoming_phone_numbers).to respond_to(:toll_free)
47
+ expect(@incoming_phone_numbers.toll_free.instance_variable_get('@path')).to(
48
+ eq('someUri/TollFree')
49
+ )
50
+ end
51
+
52
+ it 'sets up a mobile resources object' do
53
+ expect(@incoming_phone_numbers).to respond_to(:mobile)
54
+ expect(@incoming_phone_numbers.mobile.instance_variable_get('@path')).to eq(
55
+ 'someUri/Mobile'
56
+ )
57
+ end
58
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Queue do
4
+ it 'should set up a members resources object' do
5
+ queue = Restcomm::REST::Queue.new('someUri', 'someClient')
6
+ expect(queue).to respond_to(:members)
7
+ expect(queue.members.instance_variable_get('@path')).to eq(
8
+ 'someUri/Members'
9
+ )
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restcomm::REST::Recording do
4
+ it 'should set up a transcriptions resources object' do
5
+ call = Restcomm::REST::Recording.new('someUri', 'someClient')
6
+ expect(call).to respond_to(:transcriptions)
7
+ expect(call.transcriptions.instance_variable_get('@path')).to eq(
8
+ 'someUri/Transcriptions'
9
+ )
10
+ end
11
+ end