File Coverage

blib/lib/WebService/Mattermost/V4/API/Object/Team.pm
Criterion Covered Total %
statement 6 16 37.5
branch 0 4 0.0
condition n/a
subroutine 2 9 22.2
pod 0 1 0.0
total 8 30 26.6


line stmt bran cond sub pod time code
1             package WebService::Mattermost::V4::API::Object::Team;
2              
3             # ABSTRACT: A team item.
4              
5 7     7   49 use Moo;
  7         11  
  7         43  
6 7     7   2841 use Types::Standard qw(Bool Str);
  7         22  
  7         49  
7              
8             extends 'WebService::Mattermost::V4::API::Object';
9             with    qw(
10             WebService::Mattermost::V4::API::Object::Role::APIMethods
11             WebService::Mattermost::V4::API::Object::Role::Name
12             WebService::Mattermost::V4::API::Object::Role::Description
13             WebService::Mattermost::V4::API::Object::Role::ID
14             WebService::Mattermost::V4::API::Object::Role::Timestamps
15             );
16              
17             ################################################################################
18              
19             has company_name => (is => 'ro', isa => Str, lazy => 1, builder => 1);
20             has display_name => (is => 'ro', isa => Str, lazy => 1, builder => 1);
21             has email => (is => 'ro', isa => Str, lazy => 1, builder => 1);
22             has invite_id => (is => 'ro', isa => Str, lazy => 1, builder => 1);
23             has is_invite_only => (is => 'ro', isa => Bool, lazy => 1, builder => 1);
24             has open_invite => (is => 'ro', isa => Bool, lazy => 1, builder => 1);
25              
26             ################################################################################
27              
28             sub BUILD {
29 0     0 0       my $self = shift;
30              
31 0               $self->api_resource_name('team');
32 0               $self->set_available_api_methods([ qw(
33             add_member
34             add_members
35             delete
36             get_icon
37             invite_by_emails
38             members
39             members_by_ids
40             patch
41             remove_icon
42             search_posts
43             set_icon
44             set_scheme
45             stats
46             update
47             ) ]);
48              
49 0               return 1;
50             }
51              
52             ################################################################################
53              
54 0     0     sub _build_company_name { shift->raw_data->{company_name} }
55 0     0     sub _build_display_name { shift->raw_data->{display_name} }
56 0     0     sub _build_email { shift->raw_data->{email} }
57 0     0     sub _build_invite_id { shift->raw_data->{invite_id} }
58 0 0   0     sub _build_is_invite_only { shift->raw_data->{type} eq 'I' ? 1 : 0 }
59 0 0   0     sub _build_open_invite { shift->raw_data->{open_invite} ? 1 : 0 }
60              
61             ################################################################################
62              
63             1;
64              
65             __END__
66            
67             =pod
68            
69             =encoding UTF-8
70            
71             =head1 NAME
72            
73             WebService::Mattermost::V4::API::Object::Team - A team item.
74            
75             =head1 VERSION
76            
77             version 0.26
78            
79             =head1 DESCRIPTION
80            
81             Object version of a Mattermost team.
82            
83             =head2 METHODS
84            
85             See matching methods in L<WebService::Mattermost::V4::API::Resource::Team>
86             for full documentation.
87            
88             ID parameters are not required:
89            
90             my $response = $mattermost->api->team->get('ID-HERE')->item->delete();
91            
92             Is the same as:
93            
94             my $response = $mattermost->api->team->delete('ID-HERE');
95            
96             =over 4
97            
98             =item C<add_member()>
99            
100             =item C<add_members()>
101            
102             =item C<delete()>
103            
104             =item C<get_icon()>
105            
106             =item C<invite_by_emails()>
107            
108             =item C<members()>
109            
110             =item C<members_by_ids()>
111            
112             =item C<patch()>
113            
114             =item C<remove_icon()>
115            
116             =item C<search_posts()>
117            
118             =item C<set_icon()>
119            
120             =item C<set_scheme()>
121            
122             =item C<stats()>
123            
124             =item C<update()>
125            
126             =back
127            
128             =head2 ATTRIBUTES
129            
130             =over 4
131            
132             =item C<id>
133            
134             The team's ID.
135            
136             =item C<name>
137            
138             The team's name.
139            
140             =item C<display_name>
141            
142             =item C<email>
143            
144             Contact address for the team.
145            
146             =item C<invite_id>
147            
148             =item C<is_invite_only>
149            
150             Boolean.
151            
152             =item C<open_invite>
153            
154             Boolean.
155            
156             =back
157            
158             =head1 SEE ALSO
159            
160             =over 4
161            
162             =item L<WebService::Mattermost::V4::API::Resource::Team>
163            
164             =item L<WebService::Mattermost::V4::API::Resource::Teams>
165            
166             =item L<WebService::Mattermost::V4::API::Object::Role::Name>
167            
168             =item L<WebService::Mattermost::V4::API::Object::Role::Description>
169            
170             =item L<WebService::Mattermost::V4::API::Object::Role::ID>
171            
172             =item L<WebService::Mattermost::V4::API::Object::Role::Timestamps>
173            
174             =back
175            
176             =head1 AUTHOR
177            
178             Mike Jones <mike@netsplit.org.uk>
179            
180             =head1 COPYRIGHT AND LICENSE
181            
182             This software is Copyright (c) 2020 by Mike Jones.
183            
184             This is free software, licensed under:
185            
186             The MIT (X11) License
187            
188             =cut
189