Skip to content

Commit

Permalink
#64 generalize config arg to other OGC services
Browse files Browse the repository at this point in the history
  • Loading branch information
eblondel committed Mar 11, 2022
1 parent 62bc736 commit 1a9842d
Show file tree
Hide file tree
Showing 17 changed files with 78 additions and 47 deletions.
31 changes: 20 additions & 11 deletions R/CSWClient.R
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,18 @@ CSWClient <- R6Class("CSWClient",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param cas_url Central Authentication Service (CAS) URL
#'@param logger logger
initialize = function(url, serviceVersion = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(), cas_url = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(), cas_url = NULL,
logger = NULL) {
if(startsWith(serviceVersion, "3.0")) serviceVersion <- "3.0.0"
super$initialize(url, service = private$serviceName, serviceVersion = serviceVersion,
user = user, pwd = pwd, token = token, headers = headers, cas_url = cas_url,
user = user, pwd = pwd, token = token, headers = headers, config = config, cas_url = cas_url,
logger = logger)
self$capabilities = CSWCapabilities$new(self$url, self$version,
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
logger = logger)
self$capabilities$setClient(self)
},
Expand All @@ -68,7 +69,8 @@ CSWClient <- R6Class("CSWClient",
#'@description Reloads CSW capabilities
reloadCapabilities = function(){
self$capabilities = CSWCapabilities$new(self$url, self$version,
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
logger = self$loggerType)
self$capabilities$setClient(self)
},
Expand All @@ -91,7 +93,8 @@ CSWClient <- R6Class("CSWClient",
stop(errorMsg)
}
request <- CSWDescribeRecord$new(self$capabilities, op, self$getUrl(), self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
namespace = namespace, logger = self$loggerType, ...)
return(request$getResponse())
},
Expand All @@ -118,7 +121,8 @@ CSWClient <- R6Class("CSWClient",
stop(errorMsg)
}
request <- CSWGetRecordById$new(self$capabilities, op, self$getUrl(), self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
id = id, elementSetName = elementSetName,
logger = self$loggerType, ...)
return(request$getResponse())
Expand Down Expand Up @@ -153,7 +157,8 @@ CSWClient <- R6Class("CSWClient",
if(hasMaxRecords) if(maxRecords < maxRecordsPerRequest) maxRecordsPerRequest <- maxRecords

firstRequest <- CSWGetRecords$new(self$capabilities, op, self$getUrl(), self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
query = query, logger = self$loggerType,
maxRecords = maxRecordsPerRequest, ...)
records <- firstRequest$getResponse()
Expand All @@ -180,7 +185,8 @@ CSWClient <- R6Class("CSWClient",
}
}
nextRequest <- CSWGetRecords$new(self$capabilities, op, self$getUrl(), self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
query = query, logger = self$loggerType,
startPosition = nextRecord,
maxRecords = maxRecordsPerRequest, ...)
Expand Down Expand Up @@ -222,7 +228,8 @@ CSWClient <- R6Class("CSWClient",
}
#transation
transaction <- CSWTransaction$new(self$capabilities, op, cswt_url, self$getVersion(), type = type,
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
record = record, recordProperty = recordProperty, constraint = constraint,
logger = self$loggerType, ...)

Expand Down Expand Up @@ -312,7 +319,8 @@ CSWClient <- R6Class("CSWClient",
}
self$INFO(sprintf("Harvesting '%s' ...", sourceUrl))
harvest <- CSWHarvest$new(self$capabilities, op, self$getUrl(), self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
source = sourceUrl, resourceType = resourceType, resourceFormat = "application/xml",
logger = self$loggerType)

Expand Down Expand Up @@ -349,7 +357,8 @@ CSWClient <- R6Class("CSWClient",
sourceBaseUrl){
nodeHarvest <- NULL
csw <- CSWClient$new(url = url, serviceVersion = self$getVersion(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(), headers = self$getHeaders(),
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
logger = self$loggerType)
if(!is.null(csw)){
records <- csw$getRecords(query = query)
Expand Down
5 changes: 3 additions & 2 deletions R/CSWDescribeRecord.R
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ CSWDescribeRecord <- R6Class("CSWDescribeRecord",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, version, namespace = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(),
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(),
logger = NULL, ...) {
namedParams <- list(service = "CSW", version = version)

Expand All @@ -53,7 +54,7 @@ CSWDescribeRecord <- R6Class("CSWDescribeRecord",

super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "GET", url, request = private$name,
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
namedParams = namedParams,
mimeType = "text/xml", logger = logger, ...)
self$execute()
Expand Down
5 changes: 3 additions & 2 deletions R/CSWGetRecordById.R
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,13 @@ CSWGetRecordById <- R6Class("CSWGetRecordById",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param id record id
#'@param elementSetName element set name. Default is "full"
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, serviceVersion = "2.0.2",
user = NULL, pwd = NULL, token = NULL, headers = headers,
user = NULL, pwd = NULL, token = NULL, headers = headers, config = httr::config(),
id, elementSetName = "full", logger = NULL, ...) {
self$Id = id
allowedElementSetNames <- c("full", "brief", "summary")
Expand All @@ -56,7 +57,7 @@ CSWGetRecordById <- R6Class("CSWGetRecordById",

super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "POST", url, request = "GetRecordById",
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
contentType = "text/xml", mimeType = "text/xml",
logger = logger, ...)

Expand Down
5 changes: 3 additions & 2 deletions R/CSWGetRecords.R
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,19 @@ CSWGetRecords <- R6Class("CSWGetRecords",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param query object of class \link{CSWQuery}
#'@param logger logger
#'@param ... any parameter to pass to the service request, such as \code{resultType}, \code{startPosition},
#' \code{maxRecords}, \code{outputFormat}, or \code{outputSchema}
initialize = function(capabilities, op, url, serviceVersion = "2.0.2",
user = NULL, pwd = NULL, token = NULL, headers = list(),
user = NULL, pwd = NULL, token = NULL, headers = list(), config = httr::config(),
query = NULL, logger = NULL, ...) {
nsVersion <- ifelse(serviceVersion=="3.0.0", "3.0", serviceVersion)
private$xmlNamespacePrefix = paste(private$xmlNamespacePrefix, gsub("\\.", "_", nsVersion), sep="_")
super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "POST", url, request = private$xmlElement,
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
contentType = "text/xml", mimeType = "text/xml",
logger = logger, ...)

Expand Down
5 changes: 3 additions & 2 deletions R/CSWHarvest.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,14 @@ CSWHarvest <- R6Class("CSWHarvest",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param source source
#'@param resourceType resource type. Default is "http://www.isotc211.org/schemas/2005/gmd/"
#'@param resourceFormat resource format. Default is "application/xml"
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, serviceVersion = "2.0.2",
user = NULL, pwd = NULL, token = NULL, headers = list(),
user = NULL, pwd = NULL, token = NULL, headers = list(), config = httr::config(),
source = NULL,
resourceType = "http://www.isotc211.org/schemas/2005/gmd/",
resourceFormat = "application/xml",
Expand All @@ -52,7 +53,7 @@ CSWHarvest <- R6Class("CSWHarvest",
private$xmlNamespacePrefix = paste(private$xmlNamespacePrefix, gsub("\\.", "_", nsVersion), sep="_")
super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "POST", url, request = private$xmlElement,
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
contentType = "text/xml", mimeType = "text/xml",
logger = logger, ...)

Expand Down
14 changes: 10 additions & 4 deletions R/WCSClient.R
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,18 @@ WCSClient <- R6Class("WCSClient",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param cas_url Central Authentication Service (CAS) URL
#'@param logger logger
initialize = function(url, serviceVersion = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(), cas_url = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(), cas_url = NULL,
logger = NULL) {
super$initialize(url, service = private$serviceName, serviceVersion = serviceVersion,
user = user, pwd = pwd, token = token, headers = headers, cas_url = cas_url,
user = user, pwd = pwd, token = token, headers = headers, config = config, cas_url = cas_url,
logger = logger)
self$capabilities = WCSCapabilities$new(self$url, serviceVersion, logger = logger)
self$capabilities = WCSCapabilities$new(self$url, self$version,
user = user, pwd = pwd, token = token, headers = headers, config = config,
logger = logger)
self$capabilities$setClient(self)
},

Expand All @@ -52,7 +55,10 @@ WCSClient <- R6Class("WCSClient",

#'@description Reloads WCS capabilities
reloadCapabilities = function(){
self$capabilities = WCSCapabilities$new(self$url, self$version, logger = self$loggerType)
self$capabilities = WCSCapabilities$new(self$url, self$version,
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
logger = self$loggerType)
},

#'@description Describes coverage
Expand Down
5 changes: 3 additions & 2 deletions R/WCSDescribeCoverage.R
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ WCSDescribeCoverage <- R6Class("WCSDescribeCoverage",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, serviceVersion,
coverageId,
user = NULL, pwd = NULL, token = NULL, headers = c(),
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(),
logger = NULL, ...) {

namedParams <- list(service = "WCS", version = serviceVersion)
Expand All @@ -40,7 +41,7 @@ WCSDescribeCoverage <- R6Class("WCSDescribeCoverage",

super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "GET", url, request = "DescribeCoverage",
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
namedParams = namedParams, mimeType = "text/xml",
logger = logger, ...)
self$execute()
Expand Down
5 changes: 3 additions & 2 deletions R/WCSGetCoverage.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,15 @@ WCSGetCoverage <- R6Class("WCSGetCoverage",
#'@param pwd password
#'@param token token
#'@param headers headers
#'@param config config
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, serviceVersion,
coverage, envelope = NULL, crs = NULL,
time = NULL, elevation = NULL, format = NULL, rangesubset = NULL,
gridbaseCRS = NULL, gridtype = NULL, gridCS = NULL,
gridorigin = NULL, gridoffsets = NULL,
user = NULL, pwd = NULL, token = NULL, headers = c(),
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(),
logger = NULL, ...) {
namedParams <- list(service = "WCS", version = serviceVersion)

Expand Down Expand Up @@ -162,7 +163,7 @@ WCSGetCoverage <- R6Class("WCSGetCoverage",

super$initialize(element = private$xmlElement, namespacePrefix = private$xmlNamespacePrefix,
capabilities, op, "GET", url, request = "GetCoverage",
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
namedParams = namedParams, mimeType = mimeType,
logger = logger, ...)
self$execute()
Expand Down
2 changes: 1 addition & 1 deletion R/WFSClient.R
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ WFSClient <- R6Class("WFSClient",

#'@description Reloads WFS capabilities
reloadCapabilities = function(){
self$capabilities = WFSCapabilities$new(self$url, self$version,
self$capabilities = WFSCapabilities$new(self$url, self$version,
user = self$getUser(), pwd = self$getPwd(), token = self$getToken(),
headers = self$getHeaders(), config = self$getConfig(),
logger = self$loggerType)
Expand Down
5 changes: 3 additions & 2 deletions R/WFSDescribeFeatureType.R
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@ WFSDescribeFeatureType <- R6Class("WFSDescribeFeatureType",
#'@param pwd pwd
#'@param token token
#'@param headers headers
#'@param config config
#'@param logger logger
#'@param ... any parameter to pass to the service request
initialize = function(capabilities, op, url, version, typeName,
user = NULL, pwd = NULL, token = NULL, headers = c(),
user = NULL, pwd = NULL, token = NULL, headers = c(), config = httr::config(),
logger = NULL, ...) {
namedParams <- list(service = "WFS", version = version, typeName = typeName)
super$initialize(element = private$xmlElement, namespacePrefix = private$namespacePrefix,
capabilities, op, "GET", url, request = "DescribeFeatureType",
user = user, pwd = pwd, token = token, headers = headers,
user = user, pwd = pwd, token = token, headers = headers, config = config,
namedParams = namedParams, mimeType = "text/xml", logger = logger,
...)
self$execute()
Expand Down
Loading

0 comments on commit 1a9842d

Please sign in to comment.