File Coverage

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