File Coverage

blib/lib/SignalWire/Agents/REST/Namespaces/Resources.pm
Criterion Covered Total %
statement 39 89 43.8
branch 0 12 0.0
condition n/a
subroutine 13 35 37.1
pod 0 22 0.0
total 52 158 32.9


line stmt bran cond sub pod time code
1             package SignalWire::Agents::REST::Namespaces::Resources;
2 4     4   29 use strict;
  4         12  
  4         169  
3 4     4   22 use warnings;
  4         9  
  4         307  
4 4     4   32 use Moo;
  4         9  
  4         28  
5              
6             # --- Addresses (no update) ---
7             package SignalWire::Agents::REST::Namespaces::Addresses;
8 4     4   1829 use Moo;
  4         9  
  4         19  
9             extends 'SignalWire::Agents::REST::Namespaces::Base';
10              
11             sub list {
12 0     0 0   my ($self, %params) = @_;
13 0 0         my $p = %params ? \%params : undef;
14 0           return $self->_http->get($self->_base_path, params => $p);
15             }
16              
17             sub create {
18 0     0 0   my ($self, %kwargs) = @_;
19 0           return $self->_http->post($self->_base_path, body => \%kwargs);
20             }
21              
22             sub get {
23 0     0 0   my ($self, $address_id) = @_;
24 0           return $self->_http->get($self->_path($address_id));
25             }
26              
27             # --- Queues ---
28             package SignalWire::Agents::REST::Namespaces::Queues;
29 4     4   2272 use Moo;
  4         8  
  4         209  
30             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
31             has '+_update_method' => ( default => sub { 'PUT' } );
32              
33             sub list_members {
34 0     0 0   my ($self, $queue_id, %params) = @_;
35 0 0         my $p = %params ? \%params : undef;
36 0           return $self->_http->get($self->_path($queue_id, 'members'), params => $p);
37             }
38              
39             sub get_next_member {
40 0     0 0   my ($self, $queue_id) = @_;
41 0           return $self->_http->get($self->_path($queue_id, 'members', 'next'));
42             }
43              
44             # --- Recordings (read-only + delete) ---
45             package SignalWire::Agents::REST::Namespaces::Recordings;
46 4     4   2335 use Moo;
  4         9  
  4         35  
47             extends 'SignalWire::Agents::REST::Namespaces::Base';
48              
49             sub list {
50 0     0 0   my ($self, %params) = @_;
51 0 0         my $p = %params ? \%params : undef;
52 0           return $self->_http->get($self->_base_path, params => $p);
53             }
54              
55             sub get {
56 0     0 0   my ($self, $recording_id) = @_;
57 0           return $self->_http->get($self->_path($recording_id));
58             }
59              
60             sub delete_recording {
61 0     0 0   my ($self, $recording_id) = @_;
62 0           return $self->_http->delete_request($self->_path($recording_id));
63             }
64              
65             # --- NumberGroups ---
66             package SignalWire::Agents::REST::Namespaces::NumberGroups;
67 4     4   2398 use Moo;
  4         8  
  4         30  
68             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
69             has '+_update_method' => ( default => sub { 'PUT' } );
70              
71             sub list_memberships {
72 0     0 0   my ($self, $group_id, %params) = @_;
73 0 0         my $p = %params ? \%params : undef;
74 0           return $self->_http->get($self->_path($group_id, 'number_group_memberships'), params => $p);
75             }
76              
77             sub add_membership {
78 0     0 0   my ($self, $group_id, %kwargs) = @_;
79 0           return $self->_http->post($self->_path($group_id, 'number_group_memberships'), body => \%kwargs);
80             }
81              
82             # --- VerifiedCallers ---
83             package SignalWire::Agents::REST::Namespaces::VerifiedCallers;
84 4     4   2290 use Moo;
  4         9  
  4         18  
85             extends 'SignalWire::Agents::REST::Namespaces::CrudResource';
86             has '+_update_method' => ( default => sub { 'PUT' } );
87              
88             sub redial_verification {
89 0     0 0   my ($self, $caller_id) = @_;
90 0           return $self->_http->post($self->_path($caller_id, 'verification'));
91             }
92              
93             sub submit_verification {
94 0     0 0   my ($self, $caller_id, %kwargs) = @_;
95 0           return $self->_http->put($self->_path($caller_id, 'verification'), body => \%kwargs);
96             }
97              
98             # --- SipProfile (singleton) ---
99             package SignalWire::Agents::REST::Namespaces::SipProfile;
100 4     4   2018 use Moo;
  4         8  
  4         16  
101             extends 'SignalWire::Agents::REST::Namespaces::Base';
102              
103             sub get {
104 0     0 0   my ($self) = @_;
105 0           return $self->_http->get($self->_base_path);
106             }
107              
108             sub update {
109 0     0 0   my ($self, %kwargs) = @_;
110 0           return $self->_http->put($self->_base_path, body => \%kwargs);
111             }
112              
113             # --- Lookup ---
114             package SignalWire::Agents::REST::Namespaces::Lookup;
115 4     4   1848 use Moo;
  4         9  
  4         15  
116             extends 'SignalWire::Agents::REST::Namespaces::Base';
117              
118             sub phone_number {
119 0     0 0   my ($self, $e164, %params) = @_;
120 0 0         my $p = %params ? \%params : undef;
121 0           return $self->_http->get($self->_path('phone_number', $e164), params => $p);
122             }
123              
124             # --- ShortCodes (read + update) ---
125             package SignalWire::Agents::REST::Namespaces::ShortCodes;
126 4     4   1795 use Moo;
  4         8  
  4         16  
127             extends 'SignalWire::Agents::REST::Namespaces::Base';
128              
129             sub list {
130 0     0 0   my ($self, %params) = @_;
131 0 0         my $p = %params ? \%params : undef;
132 0           return $self->_http->get($self->_base_path, params => $p);
133             }
134              
135             sub get {
136 0     0 0   my ($self, $short_code_id) = @_;
137 0           return $self->_http->get($self->_path($short_code_id));
138             }
139              
140             sub update {
141 0     0 0   my ($self, $short_code_id, %kwargs) = @_;
142 0           return $self->_http->put($self->_path($short_code_id), body => \%kwargs);
143             }
144              
145             # --- ImportedNumbers (create only) ---
146             package SignalWire::Agents::REST::Namespaces::ImportedNumbers;
147 4     4   2270 use Moo;
  4         8  
  4         19  
148             extends 'SignalWire::Agents::REST::Namespaces::Base';
149              
150             sub create {
151 0     0 0   my ($self, %kwargs) = @_;
152 0           return $self->_http->post($self->_base_path, body => \%kwargs);
153             }
154              
155             # --- MFA ---
156             package SignalWire::Agents::REST::Namespaces::MFA;
157 4     4   2090 use Moo;
  4         9  
  4         17  
158             extends 'SignalWire::Agents::REST::Namespaces::Base';
159              
160             sub sms {
161 0     0 0   my ($self, %kwargs) = @_;
162 0           return $self->_http->post($self->_path('sms'), body => \%kwargs);
163             }
164              
165             sub call {
166 0     0 0   my ($self, %kwargs) = @_;
167 0           return $self->_http->post($self->_path('call'), body => \%kwargs);
168             }
169              
170             sub verify {
171 0     0 0   my ($self, $request_id, %kwargs) = @_;
172 0           return $self->_http->post($self->_path($request_id, 'verify'), body => \%kwargs);
173             }
174              
175             1;