File Coverage

blib/lib/Pithub/Issues/Milestones.pm
Criterion Covered Total %
statement 26 26 100.0
branch 10 10 100.0
condition n/a
subroutine 7 7 100.0
pod 5 5 100.0
total 48 48 100.0


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