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.01043';
4              
5             # ABSTRACT: Github v3 Pull Request Comments API
6              
7 17     17   198 use Moo;
  17         129  
  17         409  
8 17     17   6636 use Carp qw( croak );
  17         169  
  17         10364  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 6     6 1 11462 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: pull_request_id'
15 6 100       27 unless $args{pull_request_id};
16             croak 'Missing key in parameters: data (hashref)'
17 5 100       31 unless ref $args{data} eq 'HASH';
18 3         21 $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         32 ),
25             %args
26             );
27             }
28              
29              
30             sub delete {
31 4     4 1 2976 my ( $self, %args ) = @_;
32 4 100       24 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
33 3         13 $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         27 ),
40             %args,
41             );
42             }
43              
44              
45             sub get {
46 3     3 1 2173 my ( $self, %args ) = @_;
47 3 100       21 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
48 2         11 $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         23 ),
55             %args,
56             );
57             }
58              
59              
60             sub list {
61 3     3 1 13214 my ( $self, %args ) = @_;
62             croak 'Missing key in parameters: pull_request_id'
63 3 100       24 unless $args{pull_request_id};
64 2         16 $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 6351 my ( $self, %args ) = @_;
78 6 100       41 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
79             croak 'Missing key in parameters: data (hashref)'
80 5 100       36 unless ref $args{data} eq 'HASH';
81 3         18 $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         34 ),
88             %args,
89             );
90             }
91              
92             1;
93              
94             __END__