File Coverage

blib/lib/Pithub/Repos/Watching.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::Watching;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01040';
4             # ABSTRACT: Github v3 Repo Watching API
5              
6 16     16   97 use Moo;
  16         30  
  16         81  
7 16     16   4270 use Carp ();
  16         37  
  16         5009  
8             extends 'Pithub::Base';
9              
10              
11             sub is_watching {
12 3     3 1 6931 my ( $self, %args ) = @_;
13 3         33 $self->_validate_user_repo_args( \%args );
14             return $self->request(
15             method => 'GET',
16 3         33 path => sprintf( '/user/watched/%s/%s', delete $args{user}, delete $args{repo} ),
17             %args,
18             );
19             }
20              
21              
22             sub list_repos {
23 4     4 1 4139 my ( $self, %args ) = @_;
24 4 100       20 if ( my $user = delete $args{user} ) {
25 2         19 return $self->request(
26             method => 'GET',
27             path => sprintf( '/users/%s/watched', $user ),
28             %args,
29             );
30             }
31 2         10 return $self->request(
32             method => 'GET',
33             path => '/user/watched',
34             %args,
35             );
36             }
37              
38              
39             sub list {
40 19     19 1 2127 my ( $self, %args ) = @_;
41 19         95 $self->_validate_user_repo_args( \%args );
42             return $self->request(
43             method => 'GET',
44 13         113 path => sprintf( '/repos/%s/%s/watchers', delete $args{user}, delete $args{repo} ),
45             %args,
46             );
47             }
48              
49              
50             sub start_watching {
51 3     3 1 2429 my ( $self, %args ) = @_;
52 3         16 $self->_validate_user_repo_args( \%args );
53             return $self->request(
54             method => 'PUT',
55 3         24 path => sprintf( '/user/watched/%s/%s', delete $args{user}, delete $args{repo} ),
56             %args,
57             );
58             }
59              
60              
61             sub stop_watching {
62 3     3 1 2380 my ( $self, %args ) = @_;
63 3         16 $self->_validate_user_repo_args( \%args );
64             return $self->request(
65             method => 'DELETE',
66 3         24 path => sprintf( '/user/watched/%s/%s', delete $args{user}, delete $args{repo} ),
67             %args,
68             );
69             }
70              
71             1;
72              
73             __END__