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: use Moo;
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: my $self = shift;
21: my $args = shift;
22:
23: return $self->_post({
24: endpoint => 'outgoing',
25: parameters => $args,
26: required => [ 'channel_id' ],
27: });
28: }
29:
30: sub list {
31: my $self = shift;
32: my $args = shift;
33:
34: 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.30
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) 2023 by Mike Jones.
174:
175: This is free software, licensed under:
176:
177: The MIT (X11) License
178:
179: =cut
180: