Apply usual parameter encoding logic to method[request] parameter too.
authorTom Clegg <tom@curoverse.com>
Wed, 12 Feb 2014 00:56:55 +0000 (16:56 -0800)
committerTom Clegg <tom@curoverse.com>
Wed, 12 Feb 2014 00:56:55 +0000 (16:56 -0800)
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

index cfcc34a4882cc530dff8f9dd3f2959918f6482c3..0aaf9946ba5919b660cc712fbcb756e381ff76af 100644 (file)
@@ -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");