File Coverage

blib/lib/WWW/Gitea/Release.pm
Criterion Covered Total %
statement 6 39 15.3
branch 0 2 0.0
condition n/a
subroutine 2 22 9.0
pod 20 20 100.0
total 28 83 33.7


line stmt bran cond sub pod time code
1             package WWW::Gitea::Release;
2              
3             # ABSTRACT: Gitea release entity
4              
5 5     5   36 use Moo;
  5         11  
  5         32  
6 5     5   1942 use namespace::clean;
  5         9  
  5         51  
7              
8              
9             has _client => (
10             is => 'ro',
11             required => 1,
12             weak_ref => 1,
13             init_arg => 'client',
14             );
15              
16             has data => (
17             is => 'rw',
18             required => 1,
19             );
20              
21              
22             has owner => ( is => 'ro' );
23             has repo => ( is => 'ro' );
24              
25              
26 0     0 1   sub id { $_[0]->data->{id} }
27 0     0 1   sub tag_name { $_[0]->data->{tag_name} }
28 0     0 1   sub name { $_[0]->data->{name} }
29 0     0 1   sub body { $_[0]->data->{body} }
30 0     0 1   sub draft { $_[0]->data->{draft} }
31 0     0 1   sub prerelease { $_[0]->data->{prerelease} }
32 0     0 1   sub html_url { $_[0]->data->{html_url} }
33 0     0 1   sub tarball_url { $_[0]->data->{tarball_url} }
34 0     0 1   sub zipball_url { $_[0]->data->{zipball_url} }
35 0     0 1   sub created_at { $_[0]->data->{created_at} }
36 0     0 1   sub published_at { $_[0]->data->{published_at} }
37 0 0   0 1   sub author_login { my $a = $_[0]->data->{author}; $a ? $a->{login} : undef }
  0            
38              
39              
40             sub refresh {
41 0     0 1   my ($self) = @_;
42 0           my $fresh = $self->_client->releases->get($self->owner, $self->repo, $self->id);
43 0           $self->data($fresh->data);
44 0           return $self;
45             }
46              
47              
48             sub edit {
49 0     0 1   my ($self, %args) = @_;
50 0           my $fresh = $self->_client->releases->edit(
51             $self->owner, $self->repo, $self->id, %args);
52 0           $self->data($fresh->data);
53 0           return $self;
54             }
55              
56              
57             sub delete {
58 0     0 1   my ($self) = @_;
59 0           return $self->_client->releases->delete($self->owner, $self->repo, $self->id);
60             }
61              
62              
63             sub assets {
64 0     0 1   my ($self, %query) = @_;
65 0           return $self->_client->releases->assets(
66             $self->owner, $self->repo, $self->id, %query);
67             }
68              
69              
70             sub create_asset {
71 0     0 1   my ($self, %args) = @_;
72 0           return $self->_client->releases->create_asset(
73             $self->owner, $self->repo, $self->id, %args);
74             }
75              
76              
77             sub get_asset {
78 0     0 1   my ($self, $attachment_id) = @_;
79 0           return $self->_client->releases->get_asset(
80             $self->owner, $self->repo, $self->id, $attachment_id);
81             }
82              
83              
84             sub edit_asset {
85 0     0 1   my ($self, $attachment_id, %args) = @_;
86 0           return $self->_client->releases->edit_asset(
87             $self->owner, $self->repo, $self->id, $attachment_id, %args);
88             }
89              
90              
91             sub delete_asset {
92 0     0 1   my ($self, $attachment_id) = @_;
93 0           return $self->_client->releases->delete_asset(
94             $self->owner, $self->repo, $self->id, $attachment_id);
95             }
96              
97              
98              
99             1;
100              
101             __END__