16827: Fix getFileNamesFromResponse
[arvados.git] / sdk / R / R / HttpParser.R
index 8fe28b7b018419c2b2bc3c28ab85c44b4167bb27..60bf7828278859e14fefaacebbcb5d762f1dbe99 100644 (file)
@@ -1,5 +1,7 @@
-#' HttpParser
-#'
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
 HttpParser <- R6::R6Class(
 
     "HttrParser",
@@ -8,12 +10,12 @@ HttpParser <- R6::R6Class(
 
         validContentTypes = NULL,
 
-        initialize = function() 
+        initialize = function()
         {
             self$validContentTypes <- c("text", "raw")
         },
 
-        parseJSONResponse = function(serverResponse) 
+        parseJSONResponse = function(serverResponse)
         {
             parsed_response <- httr::content(serverResponse,
                                              as = "parsed",
@@ -29,17 +31,16 @@ HttpParser <- R6::R6Class(
         {
             text <- rawToChar(response$content)
             doc <- XML::xmlParse(text, asText=TRUE)
-            base <- paste(paste("/", strsplit(uri, "/")[[1]][-1:-3], sep="", collapse=""), "/", sep="")
+            base <- paste("/", strsplit(uri, "/")[[1]][4], "/", sep="")
             result <- unlist(
                 XML::xpathApply(doc, "//D:response/D:href", function(node) {
                     sub(base, "", URLdecode(XML::xmlValue(node)), fixed=TRUE)
                 })
             )
-            result <- result[result != ""]
-            result[-1]
+            result[result != ""]
         },
 
-        getFileSizesFromResponse = function(response, uri)    
+        getFileSizesFromResponse = function(response, uri)
         {
             text <- rawToChar(response$content)
             doc <- XML::xmlParse(text, asText=TRUE)