File Coverage

blib/lib/Pithub/Repos/Starring.pm
Criterion Covered Total %
statement 22 22 100.0
branch 2 2 100.0
condition n/a
subroutine 7 7 100.0
pod 5 5 100.0
total 36 36 100.0


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