File Coverage

blib/lib/Pithub/Orgs/Teams.pm
Criterion Covered Total %
statement 65 65 100.0
branch 54 54 100.0
condition n/a
subroutine 17 17 100.0
pod 15 15 100.0
total 151 151 100.0


line stmt bran cond sub pod time code
1             package Pithub::Orgs::Teams;
2             our $AUTHORITY = 'cpan:PLU';
3              
4             # ABSTRACT: Github v3 Org Teams API
5              
6 16     16   133 use Moo;
  16         34  
  16         102  
7              
8             our $VERSION = '0.01041';
9              
10 16     16   5149 use Carp qw( carp croak );
  16         47  
  16         20146  
11              
12             extends 'Pithub::Base';
13              
14              
15             sub add_member {
16 5     5 1 9511 my ( $self, %args ) = @_;
17 5 100       30 croak 'Missing key in parameters: team_id' unless $args{team_id};
18 4 100       22 croak 'Missing key in parameters: user' unless $args{user};
19 3         38 carp q{"Add team member" API is deprecated. Use add_membership method.};
20             return $self->request(
21             method => 'PUT',
22             path => sprintf(
23             '/teams/%s/members/%s', delete $args{team_id}, delete $args{user}
24 3         1124 ),
25             %args,
26             );
27             }
28              
29              
30             sub add_membership {
31 6     6 1 4738 my ( $self, %args ) = @_;
32 6 100       37 croak 'Missing key in parameters: team_id' unless $args{team_id};
33 5 100       24 croak 'Missing key in parameters: user' unless $args{user};
34 4 100       18 croak 'Missing key in parameters: data' unless $args{data};
35             return $self->request(
36             method => 'PUT',
37             path => sprintf(
38             '/teams/%s/memberships/%s', delete $args{team_id},
39             delete $args{user}
40 3         32 ),
41             %args,
42             );
43             }
44              
45              
46             sub add_repo {
47 6     6 1 4652 my ( $self, %args ) = @_;
48 6 100       30 croak 'Missing key in parameters: team_id' unless $args{team_id};
49 5 100       22 croak 'Missing key in parameters: repo' unless $args{repo};
50 4 100       20 croak 'Missing key in parameters: org' unless $args{org};
51             return $self->request(
52             method => 'PUT',
53             path => sprintf(
54             '/teams/%s/repos/%s/%s',
55             delete $args{team_id},
56             delete $args{org},
57             delete $args{repo}
58 3         31 ),
59             %args,
60             );
61             }
62              
63              
64             sub create {
65 5     5 1 4024 my ( $self, %args ) = @_;
66 5 100       34 croak 'Missing key in parameters: org' unless $args{org};
67             croak 'Missing key in parameters: data (hashref)'
68 4 100       25 unless ref $args{data} eq 'HASH';
69             return $self->request(
70             method => 'POST',
71 3         29 path => sprintf( '/orgs/%s/teams', delete $args{org} ),
72             %args,
73             );
74             }
75              
76              
77             ## no critic (Subroutines::ProhibitBuiltinHomonyms)
78             sub delete {
79 4     4 1 3294 my ( $self, %args ) = @_;
80 4 100       30 croak 'Missing key in parameters: team_id' unless $args{team_id};
81             return $self->request(
82             method => 'DELETE',
83 3         28 path => sprintf( '/teams/%s', delete $args{team_id} ),
84             %args,
85             );
86             }
87             ## use critic
88              
89              
90             sub get {
91 4     4 1 3317 my ( $self, %args ) = @_;
92 4 100       31 croak 'Missing key in parameters: team_id' unless $args{team_id};
93             return $self->request(
94             method => 'GET',
95 3         30 path => sprintf( '/teams/%s', delete $args{team_id} ),
96             %args,
97             );
98             }
99              
100              
101             sub has_repo {
102 5     5 1 3965 my ( $self, %args ) = @_;
103 5 100       29 croak 'Missing key in parameters: team_id' unless $args{team_id};
104 4 100       20 croak 'Missing key in parameters: repo' unless $args{repo};
105             return $self->request(
106             method => 'GET',
107             path => sprintf(
108             '/teams/%s/repos/%s', delete $args{team_id}, delete $args{repo}
109 3         30 ),
110             %args,
111             );
112             }
113              
114              
115             sub is_member {
116 5     5 1 3966 my ( $self, %args ) = @_;
117 5 100       27 croak 'Missing key in parameters: team_id' unless $args{team_id};
118 4 100       22 croak 'Missing key in parameters: user' unless $args{user};
119             return $self->request(
120             method => 'GET',
121             path => sprintf(
122             '/teams/%s/members/%s', delete $args{team_id}, delete $args{user}
123 3         31 ),
124             %args,
125             );
126             }
127              
128              
129             sub list {
130 4     4 1 3276 my ( $self, %args ) = @_;
131 4 100       25 croak 'Missing key in parameters: org' unless $args{org};
132             return $self->request(
133             method => 'GET',
134 3         30 path => sprintf( '/orgs/%s/teams', delete $args{org} ),
135             %args,
136             );
137             }
138              
139              
140             sub list_members {
141 4     4 1 3334 my ( $self, %args ) = @_;
142 4 100       32 croak 'Missing key in parameters: team_id' unless $args{team_id};
143             return $self->request(
144             method => 'GET',
145 3         32 path => sprintf( '/teams/%s/members', delete $args{team_id} ),
146             %args,
147             );
148             }
149              
150              
151             sub list_repos {
152 4     4 1 3292 my ( $self, %args ) = @_;
153 4 100       31 croak 'Missing key in parameters: team_id' unless $args{team_id};
154             return $self->request(
155             method => 'GET',
156 3         31 path => sprintf( '/teams/%s/repos', delete $args{team_id} ),
157             %args,
158             );
159             }
160              
161              
162             sub remove_member {
163 5     5 1 4012 my ( $self, %args ) = @_;
164 5 100       26 croak 'Missing key in parameters: team_id' unless $args{team_id};
165 4 100       24 croak 'Missing key in parameters: user' unless $args{user};
166 3         35 carp
167             q{"Remove team member" API is deprecated. Use remove_membership method.};
168             return $self->request(
169             method => 'DELETE',
170             path => sprintf(
171             '/teams/%s/members/%s', delete $args{team_id}, delete $args{user}
172 3         1021 ),
173             %args,
174             );
175             }
176              
177              
178             sub remove_membership {
179 5     5 1 4077 my ( $self, %args ) = @_;
180 5 100       31 croak 'Missing key in parameters: team_id' unless $args{team_id};
181 4 100       26 croak 'Missing key in parameters: user' unless $args{user};
182             return $self->request(
183             method => 'DELETE',
184             path => sprintf(
185             '/teams/%s/memberships/%s', delete $args{team_id},
186             delete $args{user}
187 3         32 ),
188             %args,
189             );
190             }
191              
192              
193             sub remove_repo {
194 5     5 1 3978 my ( $self, %args ) = @_;
195 5 100       29 croak 'Missing key in parameters: team_id' unless $args{team_id};
196 4 100       28 croak 'Missing key in parameters: repo' unless $args{repo};
197             return $self->request(
198             method => 'DELETE',
199             path => sprintf(
200             '/teams/%s/repos/%s', delete $args{team_id}, delete $args{repo}
201 3         34 ),
202             %args,
203             );
204             }
205              
206              
207             sub update {
208 5     5 1 3981 my ( $self, %args ) = @_;
209 5 100       32 croak 'Missing key in parameters: team_id' unless $args{team_id};
210             croak 'Missing key in parameters: data (hashref)'
211 4 100       24 unless ref $args{data} eq 'HASH';
212             return $self->request(
213             method => 'PATCH',
214 3         29 path => sprintf( '/teams/%s', delete $args{team_id} ),
215             %args,
216             );
217             }
218              
219             1;
220              
221             __END__