File Coverage

blib/lib/WebService/Mattermost/V4/API/Resource/Roles.pm
Criterion Covered Total %
statement 3 9 33.3
branch 0 2 0.0
condition 0 2 0.0
subroutine 1 2 50.0
pod 1 1 100.0
total 5 16 31.2


line stmt bran cond sub pod time code
1             package WebService::Mattermost::V4::API::Resource::Roles;
2              
3             # ABSTRACT: Wrapped API methods for the roles API endpoints.
4              
5 7     7   49 use Moo;
  7         16  
  7         41  
6              
7             extends 'WebService::Mattermost::V4::API::Resource';
8              
9             ################################################################################
10              
11             around [ qw(get_by_id get_by_name update_by_id) ] => 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 get_by_id {
20                 my $self = shift;
21                 my $id = shift;
22              
23                 return $self->_get({
24                     endpoint => '%s',
25                     ids => [ $id ],
26                 });
27             }
28              
29             sub get_by_name {
30                 my $self = shift;
31                 my $name = shift;
32              
33                 return $self->_get({
34                     endpoint => 'name/%s',
35                     ids => [ $name ],
36                 });
37             }
38              
39             sub update_by_id {
40                 my $self = shift;
41                 my $id = shift;
42                 my $args = shift;
43              
44                 return $self->_patch({
45                     endpoint => '%s/patch',
46                     parameters => $args,
47                 });
48             }
49              
50             sub get_by_names {
51 0     0 1       my $self = shift;
52 0               my $names = shift;
53              
54 0 0 0           unless (ref $names eq 'ARRAY' && scalar @{$names}) {
  0            
55 0                   return $self->error_return('The first argument must be an ArrayRef of names');
56                 }
57              
58 0               return $self->_post({
59                     endpoint => 'names',
60                     parameters => $names,
61                 });
62             }
63              
64             ################################################################################
65              
66             1;
67              
68             __END__
69            
70             =pod
71            
72             =encoding UTF-8
73            
74             =head1 NAME
75            
76             WebService::Mattermost::V4::API::Resource::Roles - Wrapped API methods for the roles API endpoints.
77            
78             =head1 VERSION
79            
80             version 0.26
81            
82             =head1 DESCRIPTION
83            
84             =head2 USAGE
85            
86             use WebService::Mattermost;
87            
88             my $mm = WebService::Mattermost->new({
89             authenticate => 1,
90             username => 'me@somewhere.com',
91             password => 'hunter2',
92             base_url => 'https://my.mattermost.server.com/api/v4/',
93             });
94            
95             my $resource = $mm->api->roles;
96            
97             =head2 METHODS
98            
99             =over 4
100            
101             =item C<get_by_id()>
102            
103             L<Get a role|https://api.mattermost.com/#tag/roles%2Fpaths%2F~1roles~1%7Brole_id%7D%2Fget>
104            
105             my $response = $resource->get_by_id('ID-HERE');
106            
107             =item C<get_by_name()>
108            
109             L<Get a role|https://api.mattermost.com/#tag/roles%2Fpaths%2F~1roles~1name~1%7Brole_name%7D%2Fget>
110            
111             my $response = $resource->get_by_name('NAME-HERE');
112            
113             =item C<update_by_id()>
114            
115             L<Patch a role|https://api.mattermost.com/#tag/roles%2Fpaths%2F~1roles~1%7Brole_id%7D~1patch%2Fput>
116            
117             my $response = $resource->update_by_id('ID-HERE', {
118             permissions => [ qw(
119             PERMISSION-HERE
120             ANOTHER-PERMISSION-HERE
121             ) ],
122             });
123            
124             =item C<get_by_names()>
125            
126             L<Get a list of roles by name|https://api.mattermost.com/#tag/roles%2Fpaths%2F~1roles~1names%2Fpost>
127            
128             my $response = $resource->get_by_names([ qw(NAME-1-HERE NAME-2-HERE) ]);
129            
130             =back
131            
132             =head1 AUTHOR
133            
134             Mike Jones <mike@netsplit.org.uk>
135            
136             =head1 COPYRIGHT AND LICENSE
137            
138             This software is Copyright (c) 2020 by Mike Jones.
139            
140             This is free software, licensed under:
141            
142             The MIT (X11) License
143            
144             =cut
145