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.01041';
4              
5             # ABSTRACT: Github v3 Repo Starring API
6              
7 16     16   109 use Moo;
  16         37  
  16         96  
8             extends 'Pithub::Base';
9              
10              
11             sub has_starred {
12 3     3 1 8049 my ( $self, %args ) = @_;
13 3         24 $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         38 ),
19             %args,
20             );
21             }
22              
23              
24             sub list {
25 1     1 1 1151 my ( $self, %args ) = @_;
26 1         6 $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         13 ),
32             %args,
33             );
34             }
35              
36              
37             sub list_repos {
38 3     3 1 4157 my ( $self, %args ) = @_;
39 3 100       19 if ( my $user = delete $args{user} ) {
40 2         24 return $self->request(
41             method => 'GET',
42             path => sprintf( '/users/%s/starred', $user ),
43             %args,
44             );
45             }
46 1         6 return $self->request(
47             method => 'GET',
48             path => '/user/starred',
49             %args,
50             );
51             }
52              
53              
54             sub star {
55 3     3 1 3172 my ( $self, %args ) = @_;
56 3         17 $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         49 ),
62             %args,
63             );
64             }
65              
66              
67             sub unstar {
68 3     3 1 3463 my ( $self, %args ) = @_;
69 3         15 $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         55 ),
75             %args,
76             );
77             }
78              
79             1;
80              
81             __END__