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.01041';
4              
5             # ABSTRACT: Github v3 User Followers API
6              
7 16     16   109 use Moo;
  16         32  
  16         92  
8 16     16   4977 use Carp qw( croak );
  16         32  
  16         7178  
9             extends 'Pithub::Base';
10              
11              
12             sub follow {
13 4     4 1 8495 my ( $self, %args ) = @_;
14 4 100       25 croak 'Missing key in parameters: user' unless $args{user};
15             return $self->request(
16             method => 'PUT',
17 3         40 path => sprintf( '/user/following/%s', delete $args{user} ),
18             %args,
19             );
20             }
21              
22              
23             sub is_following {
24 4     4 1 4204 my ( $self, %args ) = @_;
25 4 100       30 croak 'Missing key in parameters: user' unless $args{user};
26             return $self->request(
27             method => 'GET',
28 3         28 path => sprintf( '/user/following/%s', delete $args{user} ),
29             %args,
30             );
31             }
32              
33              
34             sub list {
35 12     12 1 4563 my ( $self, %args ) = @_;
36 12 100       41 if ( $args{user} ) {
37             return $self->request(
38             method => 'GET',
39 10         84 path => sprintf( '/users/%s/followers', delete $args{user} ),
40             %args,
41             );
42             }
43 2         9 return $self->request(
44             method => 'GET',
45             path => '/user/followers',
46             %args,
47             );
48             }
49              
50              
51             sub list_following {
52 4     4 1 3722 my ( $self, %args ) = @_;
53 4 100       15 if ( $args{user} ) {
54             return $self->request(
55             method => 'GET',
56 2         25 path => sprintf( '/users/%s/following', delete $args{user} ),
57             %args,
58             );
59             }
60 2         7 return $self->request(
61             method => 'GET',
62             path => '/user/following',
63             %args,
64             );
65             }
66              
67              
68             sub unfollow {
69 4     4 1 3260 my ( $self, %args ) = @_;
70 4 100       27 croak 'Missing key in parameters: user' unless $args{user};
71             return $self->request(
72             method => 'DELETE',
73 3         27 path => sprintf( '/user/following/%s', delete $args{user} ),
74             %args,
75             );
76             }
77              
78             1;
79              
80             __END__