File Coverage

blib/lib/Pithub/Repos/Hooks.pm
Criterion Covered Total %
statement 30 30 100.0
branch 12 12 100.0
condition n/a
subroutine 8 8 100.0
pod 6 6 100.0
total 56 56 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Hooks;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01040';
4             # ABSTRACT: Github v3 Repo Hooks API
5              
6 16     16   98 use Moo;
  16         28  
  16         74  
7 16     16   4279 use Carp qw( croak );
  16         32  
  16         7887  
8             extends 'Pithub::Base';
9              
10              
11             sub create {
12 5     5 1 7839 my ( $self, %args ) = @_;
13 5 100       44 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
14 3         18 $self->_validate_user_repo_args( \%args );
15             return $self->request(
16             method => 'POST',
17 3         30 path => sprintf( '/repos/%s/%s/hooks', delete $args{user}, delete $args{repo} ),
18             %args,
19             );
20             }
21              
22              
23             sub delete {
24 4     4 1 2874 my ( $self, %args ) = @_;
25 4 100       26 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
26 3         15 $self->_validate_user_repo_args( \%args );
27             return $self->request(
28             method => 'DELETE',
29 3         29 path => sprintf( '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo}, delete $args{hook_id} ),
30             %args,
31             );
32             }
33              
34              
35             sub get {
36 4     4 1 2932 my ( $self, %args ) = @_;
37 4 100       28 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
38 3         15 $self->_validate_user_repo_args( \%args );
39             return $self->request(
40             method => 'GET',
41 3         26 path => sprintf( '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo}, delete $args{hook_id} ),
42             %args,
43             );
44             }
45              
46              
47             sub list {
48 3     3 1 2432 my ( $self, %args ) = @_;
49 3         20 $self->_validate_user_repo_args( \%args );
50             return $self->request(
51             method => 'GET',
52 3         27 path => sprintf( '/repos/%s/%s/hooks', delete $args{user}, delete $args{repo} ),
53             %args,
54             );
55             }
56              
57              
58             sub test {
59 4     4 1 2876 my ( $self, %args ) = @_;
60 4 100       27 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
61 3         15 $self->_validate_user_repo_args( \%args );
62             return $self->request(
63             method => 'POST',
64 3         26 path => sprintf( '/repos/%s/%s/hooks/%d/test', delete $args{user}, delete $args{repo}, delete $args{hook_id} ),
65             %args,
66             );
67             }
68              
69              
70             sub update {
71 6     6 1 4103 my ( $self, %args ) = @_;
72 6 100       33 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
73 5 100       32 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
74 3         16 $self->_validate_user_repo_args( \%args );
75             return $self->request(
76             method => 'PATCH',
77 3         37 path => sprintf( '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo}, delete $args{hook_id} ),
78             %args,
79             );
80             }
81              
82             1;
83              
84             __END__