File Coverage

blib/lib/SignalWire/Agents/REST/Namespaces/Compat.pm
Criterion Covered Total %
statement 62 187 33.1
branch 0 26 0.0
condition n/a
subroutine 29 84 34.5
pod 0 54 0.0
total 91 351 25.9


line stmt bran cond sub pod time code
1             package SignalWire::Agents::REST::Namespaces::Compat;
2 4     4   29 use strict;
  4         8  
  4         190  
3 4     4   24 use warnings;
  4         9  
  4         341  
4 4     4   28 use Moo;
  4         9  
  4         26  
5              
6             # --- CompatAccounts ---
7             package SignalWire::Agents::REST::Namespaces::Compat::Accounts;
8 4     4   1664 use Moo;
  4         8  
  4         17  
9             extends 'SignalWire::Agents::REST::Namespaces::Base';
10              
11             sub list {
12 0     0 0 0 my ($self, %params) = @_;
13 0 0       0 my $p = %params ? \%params : undef;
14 0         0 return $self->_http->get($self->_base_path, params => $p);
15             }
16              
17             sub create {
18 0     0 0 0 my ($self, %kwargs) = @_;
19 0         0 return $self->_http->post($self->_base_path, body => \%kwargs);
20             }
21              
22             sub get {
23 0     0 0 0 my ($self, $sid) = @_;
24 0         0 return $self->_http->get($self->_path($sid));
25             }
26              
27             sub update {
28 0     0 0 0 my ($self, $sid, %kwargs) = @_;
29 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
30             }
31              
32             # --- CompatCalls ---
33             package SignalWire::Agents::REST::Namespaces::Compat::Calls;
34 4     4   2925 use Moo;
  4         14  
  4         90  
35             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
36              
37             sub update {
38 0     0 0 0 my ($self, $sid, %kwargs) = @_;
39 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
40             }
41              
42             sub start_recording {
43 0     0 0 0 my ($self, $call_sid, %kwargs) = @_;
44 0         0 return $self->_http->post($self->_path($call_sid, 'Recordings'), body => \%kwargs);
45             }
46              
47             sub update_recording {
48 0     0 0 0 my ($self, $call_sid, $recording_sid, %kwargs) = @_;
49 0         0 return $self->_http->post($self->_path($call_sid, 'Recordings', $recording_sid), body => \%kwargs);
50             }
51              
52             sub start_stream {
53 0     0 0 0 my ($self, $call_sid, %kwargs) = @_;
54 0         0 return $self->_http->post($self->_path($call_sid, 'Streams'), body => \%kwargs);
55             }
56              
57             sub stop_stream {
58 0     0 0 0 my ($self, $call_sid, $stream_sid, %kwargs) = @_;
59 0         0 return $self->_http->post($self->_path($call_sid, 'Streams', $stream_sid), body => \%kwargs);
60             }
61              
62             # --- CompatMessages ---
63             package SignalWire::Agents::REST::Namespaces::Compat::Messages;
64 4     4   3221 use Moo;
  4         11  
  4         19  
65             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
66              
67             sub update {
68 0     0 0 0 my ($self, $sid, %kwargs) = @_;
69 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
70             }
71              
72             sub list_media {
73 0     0 0 0 my ($self, $message_sid, %params) = @_;
74 0 0       0 my $p = %params ? \%params : undef;
75 0         0 return $self->_http->get($self->_path($message_sid, 'Media'), params => $p);
76             }
77              
78             sub get_media {
79 0     0 0 0 my ($self, $message_sid, $media_sid) = @_;
80 0         0 return $self->_http->get($self->_path($message_sid, 'Media', $media_sid));
81             }
82              
83             sub delete_media {
84 0     0 0 0 my ($self, $message_sid, $media_sid) = @_;
85 0         0 return $self->_http->delete_request($self->_path($message_sid, 'Media', $media_sid));
86             }
87              
88             # --- CompatFaxes ---
89             package SignalWire::Agents::REST::Namespaces::Compat::Faxes;
90 4     4   2852 use Moo;
  4         12  
  4         19  
91             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
92              
93             sub update {
94 0     0 0 0 my ($self, $sid, %kwargs) = @_;
95 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
96             }
97              
98             sub list_media {
99 0     0 0 0 my ($self, $fax_sid, %params) = @_;
100 0 0       0 my $p = %params ? \%params : undef;
101 0         0 return $self->_http->get($self->_path($fax_sid, 'Media'), params => $p);
102             }
103              
104             sub get_media {
105 0     0 0 0 my ($self, $fax_sid, $media_sid) = @_;
106 0         0 return $self->_http->get($self->_path($fax_sid, 'Media', $media_sid));
107             }
108              
109             sub delete_media {
110 0     0 0 0 my ($self, $fax_sid, $media_sid) = @_;
111 0         0 return $self->_http->delete_request($self->_path($fax_sid, 'Media', $media_sid));
112             }
113              
114             # --- CompatConferences ---
115             package SignalWire::Agents::REST::Namespaces::Compat::Conferences;
116 4     4   2782 use Moo;
  4         8  
  4         20  
117             extends 'SignalWire::Agents::REST::Namespaces::Base';
118              
119             sub list {
120 0     0 0 0 my ($self, %params) = @_;
121 0 0       0 my $p = %params ? \%params : undef;
122 0         0 return $self->_http->get($self->_base_path, params => $p);
123             }
124              
125             sub get {
126 0     0 0 0 my ($self, $sid) = @_;
127 0         0 return $self->_http->get($self->_path($sid));
128             }
129              
130             sub update {
131 0     0 0 0 my ($self, $sid, %kwargs) = @_;
132 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
133             }
134              
135             sub list_participants {
136 0     0 0 0 my ($self, $conference_sid, %params) = @_;
137 0 0       0 my $p = %params ? \%params : undef;
138 0         0 return $self->_http->get($self->_path($conference_sid, 'Participants'), params => $p);
139             }
140              
141             sub get_participant {
142 0     0 0 0 my ($self, $conference_sid, $call_sid) = @_;
143 0         0 return $self->_http->get($self->_path($conference_sid, 'Participants', $call_sid));
144             }
145              
146             sub update_participant {
147 0     0 0 0 my ($self, $conference_sid, $call_sid, %kwargs) = @_;
148 0         0 return $self->_http->post($self->_path($conference_sid, 'Participants', $call_sid), body => \%kwargs);
149             }
150              
151             sub remove_participant {
152 0     0 0 0 my ($self, $conference_sid, $call_sid) = @_;
153 0         0 return $self->_http->delete_request($self->_path($conference_sid, 'Participants', $call_sid));
154             }
155              
156             sub list_recordings {
157 0     0 0 0 my ($self, $conference_sid, %params) = @_;
158 0 0       0 my $p = %params ? \%params : undef;
159 0         0 return $self->_http->get($self->_path($conference_sid, 'Recordings'), params => $p);
160             }
161              
162             sub get_recording {
163 0     0 0 0 my ($self, $conference_sid, $recording_sid) = @_;
164 0         0 return $self->_http->get($self->_path($conference_sid, 'Recordings', $recording_sid));
165             }
166              
167             sub update_recording {
168 0     0 0 0 my ($self, $conference_sid, $recording_sid, %kwargs) = @_;
169 0         0 return $self->_http->post($self->_path($conference_sid, 'Recordings', $recording_sid), body => \%kwargs);
170             }
171              
172             sub delete_recording {
173 0     0 0 0 my ($self, $conference_sid, $recording_sid) = @_;
174 0         0 return $self->_http->delete_request($self->_path($conference_sid, 'Recordings', $recording_sid));
175             }
176              
177             sub start_stream {
178 0     0 0 0 my ($self, $conference_sid, %kwargs) = @_;
179 0         0 return $self->_http->post($self->_path($conference_sid, 'Streams'), body => \%kwargs);
180             }
181              
182             sub stop_stream {
183 0     0 0 0 my ($self, $conference_sid, $stream_sid, %kwargs) = @_;
184 0         0 return $self->_http->post($self->_path($conference_sid, 'Streams', $stream_sid), body => \%kwargs);
185             }
186              
187             # --- CompatPhoneNumbers ---
188             package SignalWire::Agents::REST::Namespaces::Compat::PhoneNumbers;
189 4     4   4719 use Moo;
  4         19  
  4         21  
190             extends 'SignalWire::Agents::REST::Namespaces::Base';
191              
192             has '_available_base' => ( is => 'lazy' );
193              
194             sub _build__available_base {
195 0     0   0 my ($self) = @_;
196 0         0 (my $path = $self->_base_path) =~ s/IncomingPhoneNumbers/AvailablePhoneNumbers/;
197 0         0 return $path;
198             }
199              
200             sub list {
201 0     0 0 0 my ($self, %params) = @_;
202 0 0       0 my $p = %params ? \%params : undef;
203 0         0 return $self->_http->get($self->_base_path, params => $p);
204             }
205              
206             sub purchase {
207 0     0 0 0 my ($self, %kwargs) = @_;
208 0         0 return $self->_http->post($self->_base_path, body => \%kwargs);
209             }
210              
211             sub get {
212 0     0 0 0 my ($self, $sid) = @_;
213 0         0 return $self->_http->get($self->_path($sid));
214             }
215              
216             sub update {
217 0     0 0 0 my ($self, $sid, %kwargs) = @_;
218 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
219             }
220              
221             sub delete_number {
222 0     0 0 0 my ($self, $sid) = @_;
223 0         0 return $self->_http->delete_request($self->_path($sid));
224             }
225              
226             sub import_number {
227 0     0 0 0 my ($self, %kwargs) = @_;
228 0         0 (my $path = $self->_base_path) =~ s/IncomingPhoneNumbers/ImportedPhoneNumbers/;
229 0         0 return $self->_http->post($path, body => \%kwargs);
230             }
231              
232             sub list_available_countries {
233 0     0 0 0 my ($self, %params) = @_;
234 0 0       0 my $p = %params ? \%params : undef;
235 0         0 return $self->_http->get($self->_available_base, params => $p);
236             }
237              
238             sub search_local {
239 0     0 0 0 my ($self, $country, %params) = @_;
240 0 0       0 my $p = %params ? \%params : undef;
241 0         0 return $self->_http->get($self->_available_base . "/$country/Local", params => $p);
242             }
243              
244             sub search_toll_free {
245 0     0 0 0 my ($self, $country, %params) = @_;
246 0 0       0 my $p = %params ? \%params : undef;
247 0         0 return $self->_http->get($self->_available_base . "/$country/TollFree", params => $p);
248             }
249              
250             # --- CompatApplications ---
251             package SignalWire::Agents::REST::Namespaces::Compat::Applications;
252 4     4   4603 use Moo;
  4         10  
  4         21  
253             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
254              
255             sub update {
256 0     0 0 0 my ($self, $sid, %kwargs) = @_;
257 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
258             }
259              
260             # --- CompatLamlBins ---
261             package SignalWire::Agents::REST::Namespaces::Compat::LamlBins;
262 4     4   2100 use Moo;
  4         10  
  4         18  
263             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
264              
265             sub update {
266 0     0 0 0 my ($self, $sid, %kwargs) = @_;
267 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
268             }
269              
270             # --- CompatQueues ---
271             package SignalWire::Agents::REST::Namespaces::Compat::Queues;
272 4     4   2278 use Moo;
  4         8  
  4         20  
273             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
274              
275             sub update {
276 0     0 0 0 my ($self, $sid, %kwargs) = @_;
277 0         0 return $self->_http->post($self->_path($sid), body => \%kwargs);
278             }
279              
280             sub list_members {
281 0     0 0 0 my ($self, $queue_sid, %params) = @_;
282 0 0       0 my $p = %params ? \%params : undef;
283 0         0 return $self->_http->get($self->_path($queue_sid, 'Members'), params => $p);
284             }
285              
286             sub get_member {
287 0     0 0 0 my ($self, $queue_sid, $call_sid) = @_;
288 0         0 return $self->_http->get($self->_path($queue_sid, 'Members', $call_sid));
289             }
290              
291             sub dequeue_member {
292 0     0 0 0 my ($self, $queue_sid, $call_sid, %kwargs) = @_;
293 0         0 return $self->_http->post($self->_path($queue_sid, 'Members', $call_sid), body => \%kwargs);
294             }
295              
296             # --- CompatRecordings ---
297             package SignalWire::Agents::REST::Namespaces::Compat::Recordings;
298 4     4   3002 use Moo;
  4         10  
  4         35  
299             extends 'SignalWire::Agents::REST::Namespaces::Base';
300              
301             sub list {
302 0     0 0 0 my ($self, %params) = @_;
303 0 0       0 my $p = %params ? \%params : undef;
304 0         0 return $self->_http->get($self->_base_path, params => $p);
305             }
306              
307             sub get {
308 0     0 0 0 my ($self, $sid) = @_;
309 0         0 return $self->_http->get($self->_path($sid));
310             }
311              
312             sub delete_recording {
313 0     0 0 0 my ($self, $sid) = @_;
314 0         0 return $self->_http->delete_request($self->_path($sid));
315             }
316              
317             # --- CompatTranscriptions ---
318             package SignalWire::Agents::REST::Namespaces::Compat::Transcriptions;
319 4     4   2493 use Moo;
  4         12  
  4         20  
320             extends 'SignalWire::Agents::REST::Namespaces::Base';
321              
322             sub list {
323 0     0 0 0 my ($self, %params) = @_;
324 0 0       0 my $p = %params ? \%params : undef;
325 0         0 return $self->_http->get($self->_base_path, params => $p);
326             }
327              
328             sub get {
329 0     0 0 0 my ($self, $sid) = @_;
330 0         0 return $self->_http->get($self->_path($sid));
331             }
332              
333             sub delete_transcription {
334 0     0 0 0 my ($self, $sid) = @_;
335 0         0 return $self->_http->delete_request($self->_path($sid));
336             }
337              
338             # --- CompatTokens ---
339             package SignalWire::Agents::REST::Namespaces::Compat::Tokens;
340 4     4   2633 use Moo;
  4         11  
  4         89  
341             extends 'SignalWire::Agents::REST::Namespaces::Base';
342              
343             sub create {
344 0     0 0 0 my ($self, %kwargs) = @_;
345 0         0 return $self->_http->post($self->_base_path, body => \%kwargs);
346             }
347              
348             sub update {
349 0     0 0 0 my ($self, $token_id, %kwargs) = @_;
350 0         0 return $self->_http->patch($self->_path($token_id), body => \%kwargs);
351             }
352              
353             sub delete_token {
354 0     0 0 0 my ($self, $token_id) = @_;
355 0         0 return $self->_http->delete_request($self->_path($token_id));
356             }
357              
358             # --- CompatNamespace ---
359             package SignalWire::Agents::REST::Namespaces::Compat;
360 4     4   2634 use Moo;
  4         10  
  4         29  
361              
362             has '_http' => ( is => 'ro', required => 1 );
363             has 'account_sid' => ( is => 'ro', required => 1 );
364              
365             has 'accounts' => ( is => 'lazy' );
366             has 'calls' => ( is => 'lazy' );
367             has 'messages' => ( is => 'lazy' );
368             has 'faxes' => ( is => 'lazy' );
369             has 'conferences' => ( is => 'lazy' );
370             has 'phone_numbers' => ( is => 'lazy' );
371             has 'applications' => ( is => 'lazy' );
372             has 'laml_bins' => ( is => 'lazy' );
373             has 'queues' => ( is => 'lazy' );
374             has 'recordings' => ( is => 'lazy' );
375             has 'transcriptions' => ( is => 'lazy' );
376             has 'tokens' => ( is => 'lazy' );
377              
378             sub _base {
379 16     16   53 my ($self) = @_;
380 16         647 return '/api/laml/2010-04-01/Accounts/' . $self->account_sid;
381             }
382              
383 1     1   1270 sub _build_accounts { SignalWire::Agents::REST::Namespaces::Compat::Accounts->new(_http => $_[0]->_http, _base_path => '/api/laml/2010-04-01/Accounts') }
384 2     2   15806 sub _build_calls { SignalWire::Agents::REST::Namespaces::Compat::Calls->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Calls') }
385 2     2   563 sub _build_messages { SignalWire::Agents::REST::Namespaces::Compat::Messages->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Messages') }
386 1     1   17 sub _build_faxes { SignalWire::Agents::REST::Namespaces::Compat::Faxes->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Faxes') }
387 2     2   36 sub _build_conferences { SignalWire::Agents::REST::Namespaces::Compat::Conferences->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Conferences') }
388 2     2   6179 sub _build_phone_numbers { SignalWire::Agents::REST::Namespaces::Compat::PhoneNumbers->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/IncomingPhoneNumbers') }
389 1     1   2275 sub _build_applications { SignalWire::Agents::REST::Namespaces::Compat::Applications->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Applications') }
390 1     1   21 sub _build_laml_bins { SignalWire::Agents::REST::Namespaces::Compat::LamlBins->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/LamlBins') }
391 2     2   2060 sub _build_queues { SignalWire::Agents::REST::Namespaces::Compat::Queues->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Queues') }
392 1     1   22 sub _build_recordings { SignalWire::Agents::REST::Namespaces::Compat::Recordings->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Recordings') }
393 1     1   6549 sub _build_transcriptions { SignalWire::Agents::REST::Namespaces::Compat::Transcriptions->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/Transcriptions') }
394 1     1   2927 sub _build_tokens { SignalWire::Agents::REST::Namespaces::Compat::Tokens->new(_http => $_[0]->_http, _base_path => $_[0]->_base . '/tokens') }
395              
396             1;