port crunch dispatcher from whjobmanager to crunch-job
[arvados.git] / sdk / perl / lib / Arvados / ResourceMethod.pm
index 52334d7fe2f8e735d62c0982bb11e58048446169..fd577752b2c706324e1cd4c688ace24ff333938a 100644 (file)
@@ -50,7 +50,7 @@ sub execute
                     if (!exists $given_params{$param_name}->{$property_name}) {
                         ;
                     }
-                    elsif ($given_params{$param_name}->{$property_name} eq undef) {
+                    elsif (!defined $given_params{$param_name}->{$property_name}) {
                         $param_value{$property_name} = JSON::null;
                     }
                     elsif ($property->{'type'} eq 'boolean') {
@@ -80,7 +80,9 @@ sub execute
         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;