summary refs log tree commit diff
path: root/lib/Net/HTTP/Console/Dispatcher/ExecuteMethod.pm
blob: 12a66e427c599b91e8596c802dc887e280dd0db0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package Net::HTTP::Console::Dispatcher::ExecuteMethod;

use Moose;
with qw/Net::HTTP::Console::Dispatcher/;

sub dispatch {
    my ($self, $input) = @_;
    (my $method, my $args) = $input =~ /^(\w+)\s(.*)$/;
    my ($content, $response) =
      $self->application->api_object->$method(%{JSON::decode_json($args)});
    $self->application->_set_and_show($content, $response);
    1;
}

sub pattern {
    my ($self, $input) = @_;
    (my $method) = $input =~ /^(\w+)/;

    # XXX find_api_method_by_name ?
    $self->application->api_object->meta->find_method_by_name($method)
      ? return $input
      : return 0;
}

1;