blib/lib/WebService/Mattermost/V4/API/Resource/OAuth/Application.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::OAuth::Application; 2: 3: # ABSTRACT: Wrapped API methods for the OAuth application API endpoints. 4: 5: use Moo; 6: 7: extends 'WebService::Mattermost::V4::API::Resource'; 8: with 'WebService::Mattermost::V4::API::Resource::Role::View::Application'; 9: 10: ################################################################################ 11: 12: around [ qw(get update delete regenerate_secret get_info) ] => sub { 13: my $orig = shift; 14: my $self = shift; 15: my $id = shift; 16: 17: return $self->validate_id($orig, $id, @_); 18: }; 19: 20: sub get { 21: my $self = shift; 22: my $id = shift; 23: 24: return $self->_single_view_get({ 25: endpoint => 'apps/%s', 26: ids => [ $id ], 27: }); 28: } 29: 30: sub update { 31: my $self = shift; 32: my $id = shift; 33: my $args = shift; 34: 35: $args->{id} ||= $id; 36: 37: return $self->_single_view_put({ 38: endpoint => 'apps/%s', 39: ids => [ $id ], 40: parameters => $args, 41: required => [ qw(id name description callback_urls homepage) ], 42: }); 43: } 44: 45: sub delete { 46: my $self = shift; 47: my $id = shift; 48: 49: return $self->_single_view_delete({ 50: endpoint => 'apps/%s', 51: ids => [ $id ], 52: view => 'Status', 53: }); 54: } 55: 56: sub regenerate_secret { 57: my $self = shift; 58: my $id = shift; 59: 60: return $self->_single_view_post({ 61: endpoint => 'apps/%s/regen_secret', 62: ids => [ $id ], 63: }); 64: } 65: 66: sub get_info { 67: my $self = shift; 68: my $id = shift; 69: 70: return $self->_single_view_get({ 71: endpoint => 'apps/%s/info', 72: ids => [ $id ], 73: }); 74: } 75: 76: ################################################################################ 77: 78: 1; 79: 80: __END__ 81: 82: =pod 83: 84: =encoding UTF-8 85: 86: =head1 NAME 87: 88: WebService::Mattermost::V4::API::Resource::OAuth::Application - Wrapped API methods for the OAuth application API endpoints. 89: 90: =head1 VERSION 91: 92: version 0.28 93: 94: =head1 DESCRIPTION 95: 96: =head2 USAGE 97: 98: use WebService::Mattermost; 99: 100: my $mm = WebService::Mattermost->new({ 101: authenticate => 1, 102: username => 'me@somewhere.com', 103: password => 'hunter2', 104: base_url => 'https://my.mattermost.server.com/api/v4/', 105: }); 106: 107: my $resource = $mm->api->application; 108: 109: =head2 METHODS 110: 111: =over 4 112: 113: =item C<get()> 114: 115: L<Get an OAuth app|https://api.mattermost.com/#tag/OAuth%2Fpaths%2F~1oauth~1apps~1%7Bapp_id%7D%2Fget> 116: 117: my $response = $resource->get('ID-HERE'); 118: 119: =item C<update()> 120: 121: L<Update an OAuth app|https://api.mattermost.com/#tag/OAuth%2Fpaths%2F~1oauth~1apps~1%7Bapp_id%7D%2Fput> 122: 123: my $response = $resource->update('ID-HERE', { 124: # Required parameters: 125: id => 'ID-HERE', 126: name => '...', 127: description => '...', 128: callback_urls => [ '...' ], 129: homepage => '...', 130: 131: # Optional parameters: 132: icon_url => '...', 133: is_trusted => \0, # or \1 for true 134: }); 135: 136: =item C<delete()> 137: 138: L<Delete an OAuth app|https://api.mattermost.com/#tag/OAuth%2Fpaths%2F~1oauth~1apps~1%7Bapp_id%7D%2Fdelete> 139: 140: my $response = $resource->delete('ID-HERE'); 141: 142: =item C<regenerate_secret()> 143: 144: L<Regenerate OAuth app secret|https://api.mattermost.com/#tag/OAuth%2Fpaths%2F~1oauth~1apps~1%7Bapp_id%7D~1regen_secret%2Fpost> 145: 146: my $response = $resource->regenerate_secret('ID-HERE'); 147: 148: =item C<get_info()> 149: 150: L<Get info on an OAuth app|https://api.mattermost.com/#tag/OAuth%2Fpaths%2F~1oauth~1apps~1%7Bapp_id%7D~1info%2Fget> 151: 152: my $response = $resource->get_info('ID-HERE'); 153: 154: =back 155: 156: =head1 AUTHOR 157: 158: Mike Jones <mike@netsplit.org.uk> 159: 160: =head1 COPYRIGHT AND LICENSE 161: 162: This software is Copyright (c) 2020 by Mike Jones. 163: 164: This is free software, licensed under: 165: 166: The MIT (X11) License 167: 168: =cut 169: |