R/utilities.R

Defines functions .stop_for_status .is_scalar_character .is_scalar_logical .is_scalar_integer .is_scalar

.is_scalar <- function(x, na.ok = FALSE)
    length(x) == 1L && (na.ok || !is.na(x))

.is_scalar_integer <- function(x, na.ok = FALSE)
    is.integer(x) && .is_scalar(x, na.ok)

.is_scalar_logical <- function(x, na.ok = FALSE)
    is.logical(x) && .is_scalar(x, na.ok)

.is_scalar_character <- function(x, na.ok = FALSE)
    is.character(x) && .is_scalar(x, na.ok)

#' @importFrom httr status_code
.stop_for_status <-
    function(x, call)
{
    code <- status_code(x)
    if (code >= 400L) {
        response <- as.list(x)
        reason <- if (is.null(x$code)) response$message else response$code
        stop(
            "'", call, "' failed\n",
            "status code: ", code, "\n",
            "reason: ", reason, "\n",
            "detail:\n", response$title,
            call. = FALSE
        )
    }

    x
}
Bioconductor/HCABrowser documentation built on Feb. 10, 2021, 12:51 p.m.