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   2169 use strict;
  3         8  
  3         90  
3 3     3   15 use warnings;
  3         6  
  3         72  
4 3     3   12 use utf8;
  3         7  
  3         14  
5 3     3   92 use feature qw/state/;
  3         7  
  3         229  
6              
7 3     3   20 use parent 'WebService::Slack::WebApi::Base';
  3         6  
  3         15  
8              
9             use WebService::Slack::WebApi::Generator (
10 3         64     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   420 );
  3         6  
28              
29             sub revoke_public_url {
30 1     1 0 586     state $rule = Data::Validator->new(
31                     file => 'Str',
32                 )->with('Method', 'AllowExtra');
33 1         1668     my ($self, $args, %extra) = $rule->validate(@_);
34              
35 1         84     return $self->request('revokePublicURL', {%$args, %extra});
36             }
37              
38             sub shared_public_url {
39 1     1 0 593     state $rule = Data::Validator->new(
40                     file => 'Str',
41                 )->with('Method', 'AllowExtra');
42 1         1608     my ($self, $args, %extra) = $rule->validate(@_);
43              
44 1         84     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 613     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         2176     my ($self, $args, %extra) = $rule->validate(@_);
59              
60 1 50       216     $args->{file} = [$args->{file}] if exists $args->{file};
61 1 50       3     $args->{channels} = join ',', @{$args->{channels}} if exists $args->{channels};
  1         4  
62              
63 1         9     return $self->request('upload', {%$args, %extra});
64             }
65              
66             1;
67              
68