blib/lib/WebService/Mattermost/V4/API/Resource/Plugin.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
statement | 3 | 3 | 100.0 |
branch | n/a | ||
condition | n/a | ||
subroutine | 1 | 1 | 100.0 |
pod | n/a | ||
total | 4 | 4 | 100.0 |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | package WebService::Mattermost::V4::API::Resource::Plugin; 2: 3: # ABSTRACT: Wrapped API methods for the plugin API endpoints. 4: 5: use Moo; 6: 7: extends 'WebService::Mattermost::V4::API::Resource'; 8: with qw( 9: WebService::Mattermost::V4::API::Resource::Role::Single 10: ); 11: 12: ################################################################################ 13: 14: around [ qw(activate deactivate remove) ] => sub { 15: my $orig = shift; 16: my $self = shift; 17: my $id = shift || $self->id; 18: 19: return $self->validate_id($orig, $id, @_); 20: }; 21: 22: sub remove { 23: my $self = shift; 24: my $id = shift; 25: 26: return $self->_single_view_delete({ 27: endpoint => '%s', 28: ids => [ $id ], 29: view => 'Status', 30: }); 31: } 32: 33: sub activate { 34: my $self = shift; 35: my $id = shift; 36: 37: return $self->_single_view_post({ 38: endpoint => '%s/activate', 39: ids => [ $id ], 40: view => 'Status', 41: }); 42: } 43: 44: sub deactivate { 45: my $self = shift; 46: my $id = shift; 47: 48: return $self->_single_view_post({ 49: endpoint => '%s/deactivate', 50: ids => [ $id ], 51: view => 'Status', 52: }); 53: } 54: 55: ################################################################################ 56: 57: 1; 58: 59: __END__ 60: 61: =pod 62: 63: =encoding UTF-8 64: 65: =head1 NAME 66: 67: WebService::Mattermost::V4::API::Resource::Plugin - Wrapped API methods for the plugin API endpoints. 68: 69: =head1 VERSION 70: 71: version 0.28 72: 73: =head1 DESCRIPTION 74: 75: =head2 USAGE 76: 77: use WebService::Mattermost; 78: 79: my $mm = WebService::Mattermost->new({ 80: authenticate => 1, 81: username => 'me@somewhere.com', 82: password => 'hunter2', 83: base_url => 'https://my.mattermost.server.com/api/v4/', 84: }); 85: 86: my $resource = $mm->api->plugin; 87: 88: Optionally, you can set a global plugin ID and not pass that argument to every 89: method: 90: 91: $resource->id('PLUGIN-ID-HERE'); 92: 93: This would make the C<deactivate()> call look like: 94: 95: my $response = $resource->deactivate(); 96: 97: =head2 METHODS 98: 99: =over 4 100: 101: =item C<remove()> 102: 103: L<Remove plugin|https://api.mattermost.com/#tag/plugins%2Fpaths%2F~1plugins~1%7Bplugin_id%7D%2Fdelete> 104: 105: my $response = $resource->remove('PLUGIN-ID-HERE'); 106: 107: =item C<activate()> 108: 109: L<Activate plugin|https://api.mattermost.com/#tag/plugins%2Fpaths%2F~1plugins~1%7Bplugin_id%7D~1activate%2Fpost> 110: 111: my $response = $resource->activate('PLUGIN-ID-HERE'); 112: 113: =item C<deactivate()> 114: 115: L<Deactivate plugin|https://api.mattermost.com/#tag/plugins%2Fpaths%2F~1plugins~1%7Bplugin_id%7D~1deactivate%2Fpost> 116: 117: my $response = $resource->deactivate('PLUGIN-ID-HERE'); 118: 119: =back 120: 121: =head1 AUTHOR 122: 123: Mike Jones <mike@netsplit.org.uk> 124: 125: =head1 COPYRIGHT AND LICENSE 126: 127: This software is Copyright (c) 2020 by Mike Jones. 128: 129: This is free software, licensed under: 130: 131: The MIT (X11) License 132: 133: =cut 134: |