File Coverage

blib/lib/Pithub/Repos/Releases/Assets.pm
Criterion Covered Total %
statement 30 30 100.0
branch 18 18 100.0
condition n/a
subroutine 7 7 100.0
pod 5 5 100.0
total 60 60 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Releases::Assets;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Repo Releases Assets API
6              
7 16     16   110 use Moo;
  16         30  
  16         91  
8 16     16   5100 use Carp qw( croak );
  16         32  
  16         9514  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 7     7 1 6448 my ( $self, %args ) = @_;
14 7 100       43 croak 'Missing key in parameters: name' unless $args{name};
15 6 100       32 croak 'Missing key in parameters: release_id' unless $args{release_id};
16 5 100       26 croak 'Missing key in parameters: data' unless $args{data};
17             croak 'Missing key in parameters: content_type'
18 4 100       26 unless $args{content_type};
19 3         20 $self->_validate_user_repo_args( \%args );
20             return $self->request(
21             method => 'POST',
22             path => sprintf(
23             '/repos/%s/%s/releases/%s/assets', delete $args{user},
24             delete $args{repo}, delete $args{release_id}
25             ),
26             host => 'uploads.github.com',
27             query => { name => delete $args{name} },
28             headers => {
29             'Content-Type' => delete $args{content_type},
30             },
31 3         56 %args,
32             );
33             }
34              
35              
36             sub delete {
37 4     4 1 3754 my ( $self, %args ) = @_;
38 4 100       43 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
39 3         18 $self->_validate_user_repo_args( \%args );
40             return $self->request(
41             method => 'DELETE',
42             path => sprintf(
43             '/repos/%s/%s/releases/assets/%s', delete $args{user},
44             delete $args{repo}, delete $args{asset_id}
45 3         44 ),
46             %args,
47             );
48             }
49              
50              
51             sub get {
52 3     3 1 2853 my ( $self, %args ) = @_;
53 3 100       31 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
54 2         11 $self->_validate_user_repo_args( \%args );
55             return $self->request(
56             method => 'GET',
57             path => sprintf(
58             '/repos/%s/%s/releases/assets/%s', delete $args{user},
59             delete $args{repo}, delete $args{asset_id}
60 2         37 ),
61             %args,
62             );
63             }
64              
65              
66             sub list {
67 3     3 1 7601 my ( $self, %args ) = @_;
68 3 100       23 croak 'Missing key in parameters: release_id' unless $args{release_id};
69 2         16 $self->_validate_user_repo_args( \%args );
70             return $self->request(
71             method => 'GET',
72             path => sprintf(
73             '/repos/%s/%s/releases/%s/assets', delete $args{user},
74             delete $args{repo}, delete $args{release_id}
75 2         34 ),
76             %args,
77             );
78             }
79              
80              
81             sub update {
82 5     5 1 4625 my ( $self, %args ) = @_;
83 5 100       29 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
84             croak 'Missing key in parameters: data (hashref)'
85 4 100       27 unless ref $args{data} eq 'HASH';
86 3         25 $self->_validate_user_repo_args( \%args );
87             return $self->request(
88             method => 'PATCH',
89             path => sprintf(
90             '/repos/%s/%s/releases/assets/%s', delete $args{user},
91             delete $args{repo}, delete $args{asset_id}
92 3         34 ),
93             %args,
94             );
95             }
96              
97             1;
98              
99             __END__