From 5e02059d616d0e4906fe281379d26c69db1a6f23 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 11 Feb 2014 16:56:55 -0800 Subject: [PATCH] Apply usual parameter encoding logic to method[request] parameter too. Amends fbd62569bca926fc12917eb60eada82a6d8a83b0 Fixes: encountered object 'Arvados::ResourceProxy=HASH(0x31fb2f8)', but neither allow_blessed nor convert_blessed settings are enabled at arvados/sdk/perl/lib/Arvados/Request.pm line 42. --- sdk/perl/lib/Arvados/ResourceMethod.pm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sdk/perl/lib/Arvados/ResourceMethod.pm b/sdk/perl/lib/Arvados/ResourceMethod.pm index cfcc34a488..0aaf9946ba 100644 --- a/sdk/perl/lib/Arvados/ResourceMethod.pm +++ b/sdk/perl/lib/Arvados/ResourceMethod.pm @@ -28,16 +28,16 @@ sub execute my %body_params; my %given_params = @_; my %extra_params = %given_params; + my %method_params = %{$method->{'parameters'}}; if ($method->{'request'}->{'properties'}) { - while (my ($prop_name, $prop_value) = - each %{$method->{'request'}->{'properties'}}) { - if (ref($prop_value) eq 'HASH' && $prop_value->{'$ref'}) { - $body_params{$prop_name} = $given_params{$prop_name}; - delete $extra_params{$prop_name}; - } - } + while (my ($prop_name, $prop_value) = + each %{$method->{'request'}->{'properties'}}) { + if (ref($prop_value) eq 'HASH' && $prop_value->{'$ref'}) { + $method_params{$prop_name} = { 'type' => 'object' }; + } + } } - while (my ($param_name, $param) = each %{$method->{'parameters'}}) { + while (my ($param_name, $param) = each %method_params) { delete $extra_params{$param_name}; if ($param->{'required'} && !exists $given_params{$param_name}) { croak("Required parameter not supplied: $param_name"); -- 2.30.2