File Coverage

blib/lib/WebService/Slack/WebApi/Files.pm
Criterion Covered Total %
statement 30 30 100.0
branch 2 4 50.0
condition n/a
subroutine 9 9 100.0
pod 0 3 0.0
total 41 46 89.1


line stmt bran cond sub pod time code
1             package WebService::Slack::WebApi::Files;
2 3     3   2462 use strict;
  3         7  
  3         93  
3 3     3   17 use warnings;
  3         6  
  3         75  
4 3     3   17 use utf8;
  3         6  
  3         16  
5 3     3   79 use feature qw/state/;
  3         6  
  3         210  
6              
7 3     3   20 use parent 'WebService::Slack::WebApi::Base';
  3         6  
  3         30  
8              
9             use WebService::Slack::WebApi::Generator (
10 3         88 delete => {
11             file => 'Str',
12             },
13             info => {
14             file => 'Str',
15             count => { isa => 'Int', optional => 1 },
16             page => { isa => 'Int', optional => 1 },
17             },
18             list => {
19             channel => { isa => 'Str', optional => 1 },
20             count => { isa => 'Int', optional => 1 },
21             page => { isa => 'Int', optional => 1 },
22             ts_from => { isa => 'Str', optional => 1 },
23             ts_to => { isa => 'Str', optional => 1 },
24             types => { isa => 'Str', optional => 1 },
25             user => { isa => 'Str', optional => 1 },
26             },
27 3     3   423 );
  3         15  
28              
29             sub revoke_public_url {
30 1     1 0 33 state $rule = Data::Validator->new(
31             file => 'Str',
32             )->with('Method', 'AllowExtra');
33 1         1581 my ($self, $args, %extra) = $rule->validate(@_);
34              
35 1         85 return $self->request('revokePublicURL', {%$args, %extra});
36             }
37              
38             sub shared_public_url {
39 1     1 0 455 state $rule = Data::Validator->new(
40             file => 'Str',
41             )->with('Method', 'AllowExtra');
42 1         1629 my ($self, $args, %extra) = $rule->validate(@_);
43              
44 1         82 return $self->request('sharedPublicURL', {%$args, %extra});
45             }
46              
47             # FIXME: maybe be broken... https://github.com/mihyaeru21/p5-WebService-Slack-WebApi/issues/15
48             sub upload {
49 1     1 0 515 state $rule = Data::Validator->new(
50             channels => { isa => 'ArrayRef[Str]', optional => 1 },
51             content => { isa => 'Str', optional => 1 },
52             file => { isa => 'Str', optional => 1 },
53             filename => { isa => 'Str', optional => 1 },
54             filetype => { isa => 'Str', optional => 1 },
55             initial_comment => { isa => 'Str', optional => 1 },
56             title => { isa => 'Str', optional => 1 },
57             )->with('Method', 'AllowExtra');
58 1         2090 my ($self, $args, %extra) = $rule->validate(@_);
59              
60 1 50       175 $args->{file} = [$args->{file}] if exists $args->{file};
61 1 50       5 $args->{channels} = join ',', @{$args->{channels}} if exists $args->{channels};
  1         14  
62              
63 1         10 return $self->request('upload', {%$args, %extra});
64             }
65              
66             1;
67