File Coverage

blib/lib/Pithub/Users/Followers.pm
Criterion Covered Total %
statement 23 23 100.0
branch 10 10 100.0
condition n/a
subroutine 7 7 100.0
pod 5 5 100.0
total 45 45 100.0


line stmt bran cond sub pod time code
1             package Pithub::Users::Followers;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01043';
4              
5             # ABSTRACT: Github v3 User Followers API
6              
7 16     16   115 use Moo;
  16         33  
  16         100  
8 16     16   6469 use Carp qw( croak );
  16         39  
  16         7956  
9             extends 'Pithub::Base';
10              
11              
12             sub follow {
13 4     4 1 8344 my ( $self, %args ) = @_;
14 4 100       31 croak 'Missing key in parameters: user' unless $args{user};
15             return $self->request(
16             method => 'PUT',
17 3         33 path => sprintf( '/user/following/%s', delete $args{user} ),
18             %args,
19             );
20             }
21              
22              
23             sub is_following {
24 4     4 1 4270 my ( $self, %args ) = @_;
25 4 100       48 croak 'Missing key in parameters: user' unless $args{user};
26             return $self->request(
27             method => 'GET',
28 3         27 path => sprintf( '/user/following/%s', delete $args{user} ),
29             %args,
30             );
31             }
32              
33              
34             sub list {
35 12     12 1 5100 my ( $self, %args ) = @_;
36 12 100       67 if ( $args{user} ) {
37             return $self->request(
38             method => 'GET',
39 10         101 path => sprintf( '/users/%s/followers', delete $args{user} ),
40             %args,
41             );
42             }
43 2         11 return $self->request(
44             method => 'GET',
45             path => '/user/followers',
46             %args,
47             );
48             }
49              
50              
51             sub list_following {
52 4     4 1 3861 my ( $self, %args ) = @_;
53 4 100       16 if ( $args{user} ) {
54             return $self->request(
55             method => 'GET',
56 2         18 path => sprintf( '/users/%s/following', delete $args{user} ),
57             %args,
58             );
59             }
60 2         12 return $self->request(
61             method => 'GET',
62             path => '/user/following',
63             %args,
64             );
65             }
66              
67              
68             sub unfollow {
69 4     4 1 2933 my ( $self, %args ) = @_;
70 4 100       31 croak 'Missing key in parameters: user' unless $args{user};
71             return $self->request(
72             method => 'DELETE',
73 3         39 path => sprintf( '/user/following/%s', delete $args{user} ),
74             %args,
75             );
76             }
77              
78             1;
79              
80             __END__