File Coverage

blib/lib/Pithub/PullRequests/Comments.pm
Criterion Covered Total %
statement 28 28 100.0
branch 14 14 100.0
condition n/a
subroutine 7 7 100.0
pod 5 5 100.0
total 54 54 100.0


line stmt bran cond sub pod time code
1             package Pithub::PullRequests::Comments;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Pull Request Comments API
6              
7 17     17   117 use Moo;
  17         37  
  17         100  
8 17     17   5338 use Carp qw( croak );
  17         50  
  17         9221  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 6     6 1 10070 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: pull_request_id'
15 6 100       31 unless $args{pull_request_id};
16             croak 'Missing key in parameters: data (hashref)'
17 5 100       48 unless ref $args{data} eq 'HASH';
18 3         22 $self->_validate_user_repo_args( \%args );
19             return $self->request(
20             method => 'POST',
21             path => sprintf(
22             '/repos/%s/%s/pulls/%s/comments', delete $args{user},
23             delete $args{repo}, delete $args{pull_request_id}
24 3         37 ),
25             %args
26             );
27             }
28              
29              
30             sub delete {
31 4     4 1 3383 my ( $self, %args ) = @_;
32 4 100       26 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
33 3         25 $self->_validate_user_repo_args( \%args );
34             return $self->request(
35             method => 'DELETE',
36             path => sprintf(
37             '/repos/%s/%s/pulls/comments/%s', delete $args{user},
38             delete $args{repo}, delete $args{comment_id}
39 3         36 ),
40             %args,
41             );
42             }
43              
44              
45             sub get {
46 3     3 1 2174 my ( $self, %args ) = @_;
47 3 100       27 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
48 2         14 $self->_validate_user_repo_args( \%args );
49             return $self->request(
50             method => 'GET',
51             path => sprintf(
52             '/repos/%s/%s/pulls/comments/%s', delete $args{user},
53             delete $args{repo}, delete $args{comment_id}
54 2         46 ),
55             %args,
56             );
57             }
58              
59              
60             sub list {
61 3     3 1 2568 my ( $self, %args ) = @_;
62             croak 'Missing key in parameters: pull_request_id'
63 3 100       27 unless $args{pull_request_id};
64 2         19 $self->_validate_user_repo_args( \%args );
65             return $self->request(
66             method => 'GET',
67             path => sprintf(
68             '/repos/%s/%s/pulls/%s/comments', delete $args{user},
69             delete $args{repo}, delete $args{pull_request_id}
70 2         33 ),
71             %args,
72             );
73             }
74              
75              
76             sub update {
77 6     6 1 4702 my ( $self, %args ) = @_;
78 6 100       34 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
79             croak 'Missing key in parameters: data (hashref)'
80 5 100       32 unless ref $args{data} eq 'HASH';
81 3         14 $self->_validate_user_repo_args( \%args );
82             return $self->request(
83             method => 'PATCH',
84             path => sprintf(
85             '/repos/%s/%s/pulls/comments/%s', delete $args{user},
86             delete $args{repo}, delete $args{comment_id}
87 3         39 ),
88             %args,
89             );
90             }
91              
92             1;
93              
94             __END__