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.01041';
4              
5             # ABSTRACT: Github v3 Issue Milestones API
6              
7 17     17   119 use Moo;
  17         34  
  17         104  
8 17     17   5305 use Carp qw( croak );
  17         41  
  17         8445  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 5     5 1 9245 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: data (hashref)'
15 5 100       41 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/milestones', delete $args{user}, delete $args{repo}
21 3         35 ),
22             %args,
23             );
24             }
25              
26              
27             sub delete {
28 4     4 1 3293 my ( $self, %args ) = @_;
29             croak 'Missing key in parameters: milestone_id'
30 4 100       28 unless $args{milestone_id};
31 3         16 $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         32 ),
38             %args,
39             );
40             }
41              
42              
43             sub get {
44 3     3 1 2273 my ( $self, %args ) = @_;
45             croak 'Missing key in parameters: milestone_id'
46 3 100       30 unless $args{milestone_id};
47 2         16 $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         39 ),
54             %args
55             );
56             }
57              
58              
59             sub list {
60 2     2 1 1442 my ( $self, %args ) = @_;
61 2         13 $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         30 ),
67             %args,
68             );
69             }
70              
71              
72             sub update {
73 5     5 1 4089 my ( $self, %args ) = @_;
74             croak 'Missing key in parameters: milestone_id'
75 5 100       36 unless $args{milestone_id};
76             croak 'Missing key in parameters: data (hashref)'
77 4 100       29 unless ref $args{data} eq 'HASH';
78 3         16 $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         40 ),
85             %args,
86             );
87             }
88              
89             1;
90              
91             __END__