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