File Coverage

blib/lib/Pithub/Issues/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::Issues::Comments;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01039';
4             # ABSTRACT: Github v3 Issue Comments API
5              
6 16     16   100 use Moo;
  16         28  
  16         88  
7 16     16   4148 use Carp qw( croak );
  16         37  
  16         7216  
8             extends 'Pithub::Base';
9              
10              
11             sub create {
12 6     6 1 8882 my ( $self, %args ) = @_;
13 6 100       30 croak 'Missing key in parameters: issue_id' unless $args{issue_id};
14 5 100       28 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
15 3         24 $self->_validate_user_repo_args( \%args );
16             return $self->request(
17             method => 'POST',
18 3         41 path => sprintf( '/repos/%s/%s/issues/%s/comments', delete $args{user}, delete $args{repo}, delete $args{issue_id} ),
19             %args,
20             );
21             }
22              
23              
24             sub delete {
25 4     4 1 3194 my ( $self, %args ) = @_;
26 4 100       22 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
27 3         15 $self->_validate_user_repo_args( \%args );
28             return $self->request(
29             method => 'DELETE',
30 3         161 path => sprintf( '/repos/%s/%s/issues/comments/%s', delete $args{user}, delete $args{repo}, delete $args{comment_id} ),
31             %args,
32             );
33             }
34              
35              
36             sub get {
37 3     3 1 2142 my ( $self, %args ) = @_;
38 3 100       21 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
39 2         13 $self->_validate_user_repo_args( \%args );
40             return $self->request(
41             method => 'GET',
42 2         26 path => sprintf( '/repos/%s/%s/issues/comments/%s', delete $args{user}, delete $args{repo}, delete $args{comment_id} ),
43             %args,
44             );
45             }
46              
47              
48             sub list {
49 3     3 1 2273 my ( $self, %args ) = @_;
50 3 100       22 croak 'Missing key in parameters: issue_id' unless $args{issue_id};
51 2         11 $self->_validate_user_repo_args( \%args );
52             return $self->request(
53             method => 'GET',
54 2         25 path => sprintf( '/repos/%s/%s/issues/%s/comments', delete $args{user}, delete $args{repo}, delete $args{issue_id} ),
55             %args,
56             );
57             }
58              
59              
60             sub update {
61 6     6 1 4156 my ( $self, %args ) = @_;
62 6 100       24 croak 'Missing key in parameters: comment_id' unless $args{comment_id};
63 5 100       29 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
64 3         14 $self->_validate_user_repo_args( \%args );
65             return $self->request(
66             method => 'PATCH',
67 3         29 path => sprintf( '/repos/%s/%s/issues/comments/%s', delete $args{user}, delete $args{repo}, delete $args{comment_id} ),
68             %args,
69             );
70             }
71              
72             1;
73              
74             __END__