File Coverage

blib/lib/Pithub/Repos/Starring.pm
Criterion Covered Total %
statement 19 19 100.0
branch 2 2 100.0
condition n/a
subroutine 6 6 100.0
pod 5 5 100.0
total 32 32 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Starring;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01043';
4              
5             # ABSTRACT: Github v3 Repo Starring API
6              
7 16     16   138 use Moo;
  16         35  
  16         128  
8             extends 'Pithub::Base';
9              
10              
11             sub has_starred {
12 3     3 1 14122 my ( $self, %args ) = @_;
13 3         35 $self->_validate_user_repo_args( \%args );
14             return $self->request(
15             method => 'GET',
16             path => sprintf(
17             '/user/starred/%s/%s', delete $args{user}, delete $args{repo}
18 3         75 ),
19             %args,
20             );
21             }
22              
23              
24             sub list {
25 1     1 1 1713 my ( $self, %args ) = @_;
26 1         9 $self->_validate_user_repo_args( \%args );
27             return $self->request(
28             method => 'GET',
29             path => sprintf(
30             '/repos/%s/%s/stargazers', delete $args{user}, delete $args{repo}
31 1         15 ),
32             %args,
33             );
34             }
35              
36              
37             sub list_repos {
38 3     3 1 6350 my ( $self, %args ) = @_;
39 3 100       19 if ( my $user = delete $args{user} ) {
40 2         22 return $self->request(
41             method => 'GET',
42             path => sprintf( '/users/%s/starred', $user ),
43             %args,
44             );
45             }
46 1         7 return $self->request(
47             method => 'GET',
48             path => '/user/starred',
49             %args,
50             );
51             }
52              
53              
54             sub star {
55 3     3 1 3965 my ( $self, %args ) = @_;
56 3         21 $self->_validate_user_repo_args( \%args );
57             return $self->request(
58             method => 'PUT',
59             path => sprintf(
60             '/user/starred/%s/%s', delete $args{user}, delete $args{repo}
61 3         32 ),
62             %args,
63             );
64             }
65              
66              
67             sub unstar {
68 3     3 1 3900 my ( $self, %args ) = @_;
69 3         19 $self->_validate_user_repo_args( \%args );
70             return $self->request(
71             method => 'DELETE',
72             path => sprintf(
73             '/user/starred/%s/%s', delete $args{user}, delete $args{repo}
74 3         32 ),
75             %args,
76             );
77             }
78              
79             1;
80              
81             __END__