Get rid of unnecessary ifelses
Change-Id: Ifb1c9013b2c8be7363f216adbb2dab1c08f517eb
diff --git a/R/KorAPQuery.R b/R/KorAPQuery.R
index d9b589c..f337d4a 100644
--- a/R/KorAPQuery.R
+++ b/R/KorAPQuery.R
@@ -134,58 +134,84 @@
#' @aliases corpusQuery
#' @export
setMethod("corpusQuery", "KorAPConnection",
- function(kco,
- query = ifelse(missing(KorAPUrl),
- stop("At least one of the parameters query and KorAPUrl must be specified.", call. = FALSE),
- httr::parse_url(KorAPUrl)$query$q),
- vc = ifelse(missing(KorAPUrl), "", httr::parse_url(KorAPUrl)$query$cq),
- KorAPUrl,
- metadataOnly = TRUE,
- ql = ifelse(missing(KorAPUrl), "poliqarp", httr::parse_url(KorAPUrl)$query$ql),
- fields = c("corpusSigle", "textSigle", "pubDate", "pubPlace",
- "availability", "textClass", "snippet"),
- accessRewriteFatal = TRUE,
- verbose = kco@verbose,
- expand = length(vc) != length(query),
- as.df = FALSE) {
- ifelse(length(query) > 1 || length(vc) > 1, {
- grid <- { if (expand) expand_grid(query=query, vc=vc) else tibble(query=query, vc=vc) }
+ function(kco,
+ query = if (missing(KorAPUrl))
+ stop("At least one of the parameters query and KorAPUrl must be specified.", call. = FALSE)
+ else
+ httr::parse_url(KorAPUrl)$query$q,
+ vc = if (missing(KorAPUrl)) "" else httr::parse_url(KorAPUrl)$query$cq,
+ KorAPUrl,
+ metadataOnly = TRUE,
+ ql = if (missing(KorAPUrl)) "poliqarp" else httr::parse_url(KorAPUrl)$query$ql,
+ fields = c(
+ "corpusSigle",
+ "textSigle",
+ "pubDate",
+ "pubPlace",
+ "availability",
+ "textClass",
+ "snippet"
+ ),
+ accessRewriteFatal = TRUE,
+ verbose = kco@verbose,
+ expand = length(vc) != length(query),
+ as.df = FALSE) {
+ if (length(query) > 1 || length(vc) > 1) {
+
+ grid <- {
+ if (expand)
+ expand_grid(query=query, vc=vc) else tibble(query=query, vc=vc) }
return(
do.call(rbind,
Map(function(q, cq) corpusQuery(kco, query=q, vc=cq, ql=ql,
verbose=verbose, as.df = TRUE), grid$query, grid$vc)) %>%
remove_rownames()
- )}, {
- contentFields <- c("snippet")
- if(metadataOnly) {
- fields <- fields[!fields %in% contentFields]
- }
- request <- paste0('?q=', URLencode(query, reserved=TRUE),
- ifelse(vc != '', paste0('&cq=', URLencode(vc, reserved=TRUE)), ''), '&ql=', ql)
- webUIRequestUrl <- paste0(kco@KorAPUrl, request)
- requestUrl <- paste0(kco@apiUrl, 'search', request,
- '&fields=', paste(fields, collapse = ","),
- ifelse(metadataOnly, '&access-rewrite-disabled=true', ''))
- log.info(verbose, "Searching \"", query, "\" in \"", vc, "\"", sep="")
- res = apiCall(kco, paste0(requestUrl, '&count=0'))
- log.info(verbose, " took ", res$meta$benchmark, "\n", sep="")
- ifelse(as.df,
- return(data.frame(query=query,
- totalResults=res$meta$totalResults,
- vc=vc,
- webUIRequestUrl=webUIRequestUrl, stringsAsFactors = FALSE)),
- return(KorAPQuery(
- korapConnection = kco,
- nextStartIndex = 0,
- fields = fields,
- requestUrl = requestUrl,
- request = request,
- totalResults = res$meta$totalResults,
- vc = vc,
- apiResponse = res,
- webUIRequestUrl = webUIRequestUrl,
- hasMoreMatches = (res$meta$totalResults > 0),
- )))})
+ )
+ } else {
+ contentFields <- c("snippet")
+ if (metadataOnly) {
+ fields <- fields[!fields %in% contentFields]
+ }
+ request <-
+ paste0('?q=',
+ URLencode(query, reserved = TRUE),
+ if (vc != '') paste0('&cq=', URLencode(vc, reserved = TRUE)) else '', '&ql=', ql)
+ webUIRequestUrl <- paste0(kco@KorAPUrl, request)
+ requestUrl <- paste0(
+ kco@apiUrl,
+ 'search',
+ request,
+ '&fields=',
+ paste(fields, collapse = ","),
+ if (metadataOnly) '&access-rewrite-disabled=true' else ''
+ )
+ log.info(verbose, "Searching \"", query, "\" in \"", vc, "\"", sep =
+ "")
+ res = apiCall(kco, paste0(requestUrl, '&count=0'))
+ log.info(verbose, " took ", res$meta$benchmark, "\n", sep =
+ "")
+ if (as.df)
+ data.frame(
+ query = query,
+ totalResults = res$meta$totalResults,
+ vc = vc,
+ webUIRequestUrl = webUIRequestUrl,
+ stringsAsFactors = FALSE
+ )
+ else
+ KorAPQuery(
+ korapConnection = kco,
+ nextStartIndex = 0,
+ fields = fields,
+ requestUrl = requestUrl,
+ request = request,
+ totalResults = res$meta$totalResults,
+ vc = vc,
+ apiResponse = res,
+ webUIRequestUrl = webUIRequestUrl,
+ hasMoreMatches = (res$meta$totalResults > 0),
+ )
+ }
})
#' Fetch the next bunch of results of a KorAP query.
@@ -217,7 +243,7 @@
collectedMatches <- kqo@collectedMatches
repeat {
- res <- apiCall(kqo@korapConnection, paste0(kqo@requestUrl, '&count=', min(ifelse(!is.na(maxFetch), maxFetch - results, maxResultsPerPage), maxResultsPerPage) ,'&offset=', offset + results))
+ res <- apiCall(kqo@korapConnection, paste0(kqo@requestUrl, '&count=', min(if (!is.na(maxFetch)) maxFetch - results else maxResultsPerPage, maxResultsPerPage) ,'&offset=', offset + results))
if (res$meta$totalResults == 0) { return(kqo) }
for (field in kqo@fields) {
if (!field %in% colnames(res$matches)) {