Look in method[request][properties][$ref] for resource object
authorTom Clegg <tom@curoverse.com>
Tue, 11 Feb 2014 22:28:32 +0000 (14:28 -0800)
committerTom Clegg <tom@curoverse.com>
Tue, 11 Feb 2014 22:30:28 +0000 (14:30 -0800)
argument.

Fixes #2084

sdk/perl/lib/Arvados/ResourceMethod.pm

index fd577752b2c706324e1cd4c688ace24ff333938a..cfcc34a4882cc530dff8f9dd3f2959918f6482c3 100644 (file)
@@ -28,6 +28,15 @@ sub execute
     my %body_params;
     my %given_params = @_;
     my %extra_params = %given_params;
+    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 ($param_name, $param) = each %{$method->{'parameters'}}) {
         delete $extra_params{$param_name};
         if ($param->{'required'} && !exists $given_params{$param_name}) {