From: Tom Clegg Date: Tue, 11 Feb 2014 22:28:32 +0000 (-0800) Subject: Look in method[request][properties][$ref] for resource object X-Git-Tag: 1.1.0~2777^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/fbd62569bca926fc12917eb60eada82a6d8a83b0 Look in method[request][properties][$ref] for resource object argument. Fixes #2084 --- diff --git a/sdk/perl/lib/Arvados/ResourceMethod.pm b/sdk/perl/lib/Arvados/ResourceMethod.pm index fd577752b2..cfcc34a488 100644 --- a/sdk/perl/lib/Arvados/ResourceMethod.pm +++ b/sdk/perl/lib/Arvados/ResourceMethod.pm @@ -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}) {