diff options
Diffstat (limited to '')
-rw-r--r-- | lib/Net/HTTP/Console/Dispatcher/Method.pm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Dispatcher/Method.pm b/lib/Net/HTTP/Console/Dispatcher/Method.pm new file mode 100644 index 0000000..0c031d3 --- /dev/null +++ b/lib/Net/HTTP/Console/Dispatcher/Method.pm @@ -0,0 +1,26 @@ +package Net::HTTP::Console::Dispatcher::Method; + +use MooseX::Declare; + +class Net::HTTP::Console::Dispatcher::Method with Net::HTTP::Console::Dispatcher { + + method dispatch($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; + } + + method pattern($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; |