File Coverage

blib/lib/WebService/Mattermost/V4/API/Resource/Webhook/Outgoing.pm
Criterion Covered Total %
statement 3 9 33.3
branch n/a
condition n/a
subroutine 1 3 33.3
pod 2 2 100.0
total 6 14 42.8


line stmt bran cond sub pod time code
1             package WebService::Mattermost::V4::API::Resource::Webhook::Outgoing;
2              
3             # ABSTRACT: Wrapped API methods for the outgoing webhook API endpoints.
4              
5 7     7   50 use Moo;
  7         17  
  7         42  
6              
7             extends 'WebService::Mattermost::V4::API::Resource';
8              
9             ################################################################################
10              
11             around [ qw(get_by_id update_by_id regenerate_token) ] => sub {
12                 my $orig = shift;
13                 my $self = shift;
14                 my $id = shift;
15              
16                 return $self->validate_id($orig, $id, @_);
17             };
18              
19             sub create {
20 0     0 1       my $self = shift;
21 0               my $args = shift;
22              
23 0               return $self->_post({
24                     endpoint => 'outgoing',
25                     parameters => $args,
26                     required => [ 'channel_id' ],
27                 });
28             }
29              
30             sub list {
31 0     0 1       my $self = shift;
32 0               my $args = shift;
33              
34 0               return $self->_get({
35                     endpoint => 'outgoing',
36                     parameters => $args,
37                 });
38             }
39              
40             sub get_by_id {
41                 my $self = shift;
42                 my $id = shift;
43              
44                 return $self->_get({
45                     endpoint => 'outgoing/%s',
46                     ids => [ $id ],
47                 });
48             }
49              
50             sub update_by_id {
51                 my $self = shift;
52                 my $id = shift;
53                 my $args = shift;
54              
55                 $args->{hook_id} = $id;
56              
57                 return $self->_put({
58                     endpoint => 'outgoing/%s',
59                     ids => [ $id ],
60                     parameters => $args,
61                     required => [ qw(hook_id channel_id display_name description) ],
62                 });
63             }
64              
65             sub regenerate_token {
66                 my $self = shift;
67                 my $id = shift;
68              
69                 return $self->_post({
70                     endpoint => 'outgoing/%s/regen_token',
71                     ids => [ $id ],
72                 });
73             }
74              
75             ################################################################################
76              
77             1;
78              
79             __END__
80            
81             =pod
82            
83             =encoding UTF-8
84            
85             =head1 NAME
86            
87             WebService::Mattermost::V4::API::Resource::Webhook::Outgoing - Wrapped API methods for the outgoing webhook API endpoints.
88            
89             =head1 VERSION
90            
91             version 0.26
92            
93             =head1 DESCRIPTION
94            
95             =head2 USAGE
96            
97             use WebService::Mattermost;
98            
99             my $mm = WebService::Mattermost->new({
100             authenticate => 1,
101             username => 'me@somewhere.com',
102             password => 'hunter2',
103             base_url => 'https://my.mattermost.server.com/api/v4/',
104             });
105            
106             my $resource = $mm->api->webhooks->outgoing;
107            
108             =head2 METHODS
109            
110             =over 4
111            
112             =item C<create()>
113            
114             L<Create an outgoing webhook|https://api.mattermost.com/#tag/webhooks%2Fpaths%2F~1hooks~1outgoing%2Fpost>
115            
116             my $response = $resource->create({
117             # Required parameters:
118             channel_id => 'CHANNEL-ID-HERE',
119            
120             # Optional parameters:
121             display_name => '...',
122             description => '...',
123             username => '...',
124             icon_url => '...',
125             });
126            
127             =item C<list()>
128            
129             L<List outgoing webhooks|https://api.mattermost.com/#tag/webhooks%2Fpaths%2F~1hooks~1outgoing%2Fget>
130            
131             my $response = $resource->list({
132             # Optional parameters:
133             page => 0,
134             per_page => 60,
135             team_id => 'TEAM-ID-HERE',
136             });
137            
138             =item C<get_by_id()>
139            
140             L<Get an outgoing webhook|https://api.mattermost.com/#tag/webhooks%2Fpaths%2F~1hooks~1outgoing~1%7Bhook_id%7D%2Fget>
141            
142             my $response = $resource->get_by_id('WEBHOOK-ID-HERE');
143            
144             =item C<update_by_id()>
145            
146             L<Update an outgoing webhook|https://api.mattermost.com/#tag/webhooks%2Fpaths%2F~1hooks~1outgoing~1%7Bhook_id%7D%2Fput>
147            
148             my $response = $resource->update_by_id('WEBHOOK-ID-HERE', {
149             # Required parameters:
150             channel_id => 'CHANNEL-ID-HERE',
151             display_name => '...',
152             description => '...',
153            
154             # Optional parameters:
155             username => '...',
156             icon_url => '...',
157             });
158            
159             =item C<regenerate_token()>
160            
161             L<Regenerate the token for the outgoing webhook|https://api.mattermost.com/#tag/webhooks%2Fpaths%2F~1hooks~1outgoing~1%7Bhook_id%7D~1regen_token%2Fpost>
162            
163             my $response = $resource->regenerate_token('WEBHOOK-ID-HERE');
164            
165             =back
166            
167             =head1 AUTHOR
168            
169             Mike Jones <mike@netsplit.org.uk>
170            
171             =head1 COPYRIGHT AND LICENSE
172            
173             This software is Copyright (c) 2020 by Mike Jones.
174            
175             This is free software, licensed under:
176            
177             The MIT (X11) License
178            
179             =cut
180