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}) {
croak("Unsupported parameter(s) passed to API call /$path: \"" . join('", "', keys %extra_params) . '"');
}
my $r = $self->{'resourceAccessor'}->{'api'}->new_request;
- $r->set_uri($self->{'resourceAccessor'}->{'api'}->{'discoveryDocument'}->{'baseUrl'} . "/" . $path);
+ my $base_uri = $self->{'resourceAccessor'}->{'api'}->{'discoveryDocument'}->{'baseUrl'};
+ $base_uri =~ s:/$::;
+ $r->set_uri($base_uri . "/" . $path);
$r->set_method($method->{'httpMethod'});
$r->set_auth_token($self->{'resourceAccessor'}->{'api'}->{'authToken'});
$r->set_query_params(\%body_params) if %body_params;