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.01043';
4              
5             # ABSTRACT: Github v3 Repo Releases Assets API
6              
7 16     16   109 use Moo;
  16         32  
  16         120  
8 16     16   7707 use Carp qw( croak );
  16         38  
  16         10514  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 7     7 1 8309 my ( $self, %args ) = @_;
14 7 100       49 croak 'Missing key in parameters: name' unless $args{name};
15 6 100       37 croak 'Missing key in parameters: release_id' unless $args{release_id};
16 5 100       32 croak 'Missing key in parameters: data' unless $args{data};
17             croak 'Missing key in parameters: content_type'
18 4 100       28 unless $args{content_type};
19 3         25 $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         53 %args,
32             );
33             }
34              
35              
36             sub delete {
37 4     4 1 5186 my ( $self, %args ) = @_;
38 4 100       194 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
39 3         37 $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         36 ),
46             %args,
47             );
48             }
49              
50              
51             sub get {
52 3     3 1 4249 my ( $self, %args ) = @_;
53 3 100       33 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
54 2         17 $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         31 ),
61             %args,
62             );
63             }
64              
65              
66             sub list {
67 3     3 1 13128 my ( $self, %args ) = @_;
68 3 100       33 croak 'Missing key in parameters: release_id' unless $args{release_id};
69 2         30 $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         37 ),
76             %args,
77             );
78             }
79              
80              
81             sub update {
82 5     5 1 6333 my ( $self, %args ) = @_;
83 5 100       42 croak 'Missing key in parameters: asset_id' unless $args{asset_id};
84             croak 'Missing key in parameters: data (hashref)'
85 4 100       35 unless ref $args{data} eq 'HASH';
86 3         21 $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         36 ),
93             %args,
94             );
95             }
96              
97             1;
98              
99             __END__