File Coverage

blib/lib/SignalWire/Agents/REST/Namespaces/Calling.pm
Criterion Covered Total %
statement 10 88 11.3
branch 0 2 0.0
condition n/a
subroutine 4 42 9.5
pod 0 38 0.0
total 14 170 8.2


line stmt bran cond sub pod time code
1             package SignalWire::Agents::REST::Namespaces::Calling;
2 4     4   31 use strict;
  4         10  
  4         167  
3 4     4   22 use warnings;
  4         8  
  4         256  
4 4     4   44 use Moo;
  4         8  
  4         31  
5             extends 'SignalWire::Agents::REST::Namespaces::Base';
6              
7             # REST call control -- all commands dispatched via single POST endpoint.
8              
9             sub BUILD {
10 5     5 0 13872 my ($self) = @_;
11             # base_path is /api/calling/calls
12             }
13              
14             sub _execute {
15 0     0     my ($self, $command, $call_id, %params) = @_;
16 0           my %body = (command => $command, params => \%params);
17 0 0         $body{id} = $call_id if defined $call_id;
18 0           return $self->_http->post($self->_base_path, body => \%body);
19             }
20              
21             # Call lifecycle
22 0     0 0   sub dial { my ($s, %p) = @_; $s->_execute('dial', undef, %p) }
  0            
23 0     0 0   sub update_call { my ($s, %p) = @_; $s->_execute('update', undef, %p) }
  0            
24 0     0 0   sub end { my ($s, $id, %p) = @_; $s->_execute('calling.end', $id, %p) }
  0            
25 0     0 0   sub transfer { my ($s, $id, %p) = @_; $s->_execute('calling.transfer', $id, %p) }
  0            
26 0     0 0   sub disconnect { my ($s, $id, %p) = @_; $s->_execute('calling.disconnect', $id, %p) }
  0            
27              
28             # Play
29 0     0 0   sub play { my ($s, $id, %p) = @_; $s->_execute('calling.play', $id, %p) }
  0            
30 0     0 0   sub play_pause { my ($s, $id, %p) = @_; $s->_execute('calling.play.pause', $id, %p) }
  0            
31 0     0 0   sub play_resume { my ($s, $id, %p) = @_; $s->_execute('calling.play.resume', $id, %p) }
  0            
32 0     0 0   sub play_stop { my ($s, $id, %p) = @_; $s->_execute('calling.play.stop', $id, %p) }
  0            
33 0     0 0   sub play_volume { my ($s, $id, %p) = @_; $s->_execute('calling.play.volume', $id, %p) }
  0            
34              
35             # Record
36 0     0 0   sub record { my ($s, $id, %p) = @_; $s->_execute('calling.record', $id, %p) }
  0            
37 0     0 0   sub record_pause { my ($s, $id, %p) = @_; $s->_execute('calling.record.pause', $id, %p) }
  0            
38 0     0 0   sub record_resume { my ($s, $id, %p) = @_; $s->_execute('calling.record.resume', $id, %p) }
  0            
39 0     0 0   sub record_stop { my ($s, $id, %p) = @_; $s->_execute('calling.record.stop', $id, %p) }
  0            
40              
41             # Collect
42 0     0 0   sub collect { my ($s, $id, %p) = @_; $s->_execute('calling.collect', $id, %p) }
  0            
43 0     0 0   sub collect_stop { my ($s, $id, %p) = @_; $s->_execute('calling.collect.stop', $id, %p) }
  0            
44 0     0 0   sub collect_start_input_timers { my ($s, $id, %p) = @_; $s->_execute('calling.collect.start_input_timers', $id, %p) }
  0            
45              
46             # Detect
47 0     0 0   sub detect { my ($s, $id, %p) = @_; $s->_execute('calling.detect', $id, %p) }
  0            
48 0     0 0   sub detect_stop { my ($s, $id, %p) = @_; $s->_execute('calling.detect.stop', $id, %p) }
  0            
49              
50             # Tap
51 0     0 0   sub tap { my ($s, $id, %p) = @_; $s->_execute('calling.tap', $id, %p) }
  0            
52 0     0 0   sub tap_stop { my ($s, $id, %p) = @_; $s->_execute('calling.tap.stop', $id, %p) }
  0            
53              
54             # Stream
55 0     0 0   sub stream { my ($s, $id, %p) = @_; $s->_execute('calling.stream', $id, %p) }
  0            
56 0     0 0   sub stream_stop { my ($s, $id, %p) = @_; $s->_execute('calling.stream.stop', $id, %p) }
  0            
57              
58             # Denoise
59 0     0 0   sub denoise { my ($s, $id, %p) = @_; $s->_execute('calling.denoise', $id, %p) }
  0            
60 0     0 0   sub denoise_stop { my ($s, $id, %p) = @_; $s->_execute('calling.denoise.stop', $id, %p) }
  0            
61              
62             # Transcribe
63 0     0 0   sub transcribe { my ($s, $id, %p) = @_; $s->_execute('calling.transcribe', $id, %p) }
  0            
64 0     0 0   sub transcribe_stop { my ($s, $id, %p) = @_; $s->_execute('calling.transcribe.stop', $id, %p) }
  0            
65              
66             # AI
67 0     0 0   sub ai_message { my ($s, $id, %p) = @_; $s->_execute('calling.ai_message', $id, %p) }
  0            
68 0     0 0   sub ai_hold { my ($s, $id, %p) = @_; $s->_execute('calling.ai_hold', $id, %p) }
  0            
69 0     0 0   sub ai_unhold { my ($s, $id, %p) = @_; $s->_execute('calling.ai_unhold', $id, %p) }
  0            
70 0     0 0   sub ai_stop { my ($s, $id, %p) = @_; $s->_execute('calling.ai.stop', $id, %p) }
  0            
71              
72             # Live transcribe / translate
73 0     0 0   sub live_transcribe { my ($s, $id, %p) = @_; $s->_execute('calling.live_transcribe', $id, %p) }
  0            
74 0     0 0   sub live_translate { my ($s, $id, %p) = @_; $s->_execute('calling.live_translate', $id, %p) }
  0            
75              
76             # Fax
77 0     0 0   sub send_fax_stop { my ($s, $id, %p) = @_; $s->_execute('calling.send_fax.stop', $id, %p) }
  0            
78 0     0 0   sub receive_fax_stop { my ($s, $id, %p) = @_; $s->_execute('calling.receive_fax.stop', $id, %p) }
  0            
79              
80             # SIP
81 0     0 0   sub refer { my ($s, $id, %p) = @_; $s->_execute('calling.refer', $id, %p) }
  0            
82              
83             # Custom events
84 0     0 0   sub user_event { my ($s, $id, %p) = @_; $s->_execute('calling.user_event', $id, %p) }
  0            
85              
86             1;