diff --git a/lib/Mojo/WebSocketProxy/Backend.pm b/lib/Mojo/WebSocketProxy/Backend.pm index fe0111e..7894ff1 100644 --- a/lib/Mojo/WebSocketProxy/Backend.pm +++ b/lib/Mojo/WebSocketProxy/Backend.pm @@ -96,7 +96,13 @@ sub make_call_params { $call_params->{args} = $args; if (defined $stash_params) { - $call_params->{$_} = $c->stash($_) for @$stash_params; + for my $param (@$stash_params) { + $call_params->{$param} = $c->stash($param); + + if (defined $c->stash('rpc_storage') && exists $c->stash('rpc_storage')->{$param}) { + $call_params->{$param} = $c->stash('rpc_storage')->{$param}; + } + } } return $call_params; diff --git a/lib/Mojo/WebSocketProxy/Dispatcher.pm b/lib/Mojo/WebSocketProxy/Dispatcher.pm index 707f1ff..177422c 100644 --- a/lib/Mojo/WebSocketProxy/Dispatcher.pm +++ b/lib/Mojo/WebSocketProxy/Dispatcher.pm @@ -9,11 +9,11 @@ use Mojo::WebSocketProxy::Config; use Class::Method::Modifiers; -use JSON::MaybeUTF8 qw(:v1); +use JSON::MaybeUTF8 qw(:v1); use Unicode::Normalize (); use Future::Mojo 0.004; # ->new_timeout use Future::Utils qw(fmap); -use Scalar::Util qw(blessed); +use Scalar::Util qw(blessed); use Encode; use DataDog::DogStatsd::Helper qw(stats_inc); diff --git a/t/05_basic.t b/t/05_basic.t index e7c8fb6..a8c59a8 100644 --- a/t/05_basic.t +++ b/t/05_basic.t @@ -85,8 +85,8 @@ $t->websocket_ok('/api' => {}); $t = $t->send_ok({json => {some_action => 1}})->message_ok; $res = decode_json_utf8($t->message->[1]); -is $url, 'http://rpc-host.com:8080/some_action', 'It should use url + method'; -is $call_params->{method}, 'some_action', 'It should use method from actions'; +is $url, 'http://rpc-host.com:8080/some_action', 'It should use url + method'; +is $call_params->{method}, 'some_action', 'It should use method from actions'; ok $call_params->{id}, 'It should generate call id'; is_deeply $call_params->{params}->{args}, {some_action => 1}, 'It should forward message params'; is_deeply $res,