X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/df8b4a86d08b4da0f5959766257664c9af89343b..093ec98e4a065acfc537ea22c08c337c115fe273:/sdk/R/R/HttpParser.R diff --git a/sdk/R/R/HttpParser.R b/sdk/R/R/HttpParser.R index dda3db90b0..60bf782827 100644 --- a/sdk/R/R/HttpParser.R +++ b/sdk/R/R/HttpParser.R @@ -1,35 +1,46 @@ -#' HttpParser -#' +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + HttpParser <- R6::R6Class( "HttrParser", public = list( - initialize = function() + + validContentTypes = NULL, + + initialize = function() { + self$validContentTypes <- c("text", "raw") }, - parseJSONResponse = function(serverResponse) + parseJSONResponse = function(serverResponse) { - parsed_response <- httr::content(serverResponse, as = "parsed", type = "application/json") + parsed_response <- httr::content(serverResponse, + as = "parsed", + type = "application/json") }, - #TODO rename this - parseWebDAVResponse = function(response, uri) + parseResponse = function(serverResponse, outputType) + { + parsed_response <- httr::content(serverResponse, as = outputType) + }, + + getFileNamesFromResponse = function(response, uri) { 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 + result[result != ""] }, - extractFileSizeFromWebDAVResponse = function(response, uri) + getFileSizesFromResponse = function(response, uri) { text <- rawToChar(response$content) doc <- XML::xmlParse(text, asText=TRUE)