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.01041';
4              
5             # ABSTRACT: Github v3 Repo Hooks API
6              
7 16     16   119 use Moo;
  16         38  
  16         85  
8 16     16   4937 use Carp qw( croak );
  16         47  
  16         9328  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 5     5 1 10038 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: data (hashref)'
15 5 100       44 unless ref $args{data} eq 'HASH';
16 3         23 $self->_validate_user_repo_args( \%args );
17             return $self->request(
18             method => 'POST',
19             path => sprintf(
20             '/repos/%s/%s/hooks', delete $args{user}, delete $args{repo}
21 3         30 ),
22             %args,
23             );
24             }
25              
26              
27             sub delete {
28 4     4 1 3786 my ( $self, %args ) = @_;
29 4 100       29 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
30 3         16 $self->_validate_user_repo_args( \%args );
31             return $self->request(
32             method => 'DELETE',
33             path => sprintf(
34             '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo},
35             delete $args{hook_id}
36 3         33 ),
37             %args,
38             );
39             }
40              
41              
42             sub get {
43 4     4 1 3759 my ( $self, %args ) = @_;
44 4 100       37 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
45 3         18 $self->_validate_user_repo_args( \%args );
46             return $self->request(
47             method => 'GET',
48             path => sprintf(
49             '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo},
50             delete $args{hook_id}
51 3         32 ),
52             %args,
53             );
54             }
55              
56              
57             sub list {
58 3     3 1 3006 my ( $self, %args ) = @_;
59 3         22 $self->_validate_user_repo_args( \%args );
60             return $self->request(
61             method => 'GET',
62             path => sprintf(
63             '/repos/%s/%s/hooks', delete $args{user}, delete $args{repo}
64 3         32 ),
65             %args,
66             );
67             }
68              
69              
70             sub test {
71 4     4 1 3732 my ( $self, %args ) = @_;
72 4 100       27 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
73 3         16 $self->_validate_user_repo_args( \%args );
74             return $self->request(
75             method => 'POST',
76             path => sprintf(
77             '/repos/%s/%s/hooks/%d/test', delete $args{user},
78             delete $args{repo}, delete $args{hook_id}
79 3         31 ),
80             %args,
81             );
82             }
83              
84              
85             sub update {
86 6     6 1 5475 my ( $self, %args ) = @_;
87 6 100       33 croak 'Missing key in parameters: hook_id' unless $args{hook_id};
88             croak 'Missing key in parameters: data (hashref)'
89 5 100       38 unless ref $args{data} eq 'HASH';
90 3         14 $self->_validate_user_repo_args( \%args );
91             return $self->request(
92             method => 'PATCH',
93             path => sprintf(
94             '/repos/%s/%s/hooks/%d', delete $args{user}, delete $args{repo},
95             delete $args{hook_id}
96 3         31 ),
97             %args,
98             );
99             }
100              
101             1;
102              
103             __END__