R/imageQuery.R

#' Query image IP
#'
#' Query to get details of an image in an IP address
#'
#' @import httr
#' @import dplyr
#' @importFrom jsonlite fromJSON
#' @importFrom data.table as.data.table
#' @importFrom tidyr unnest
#' @param ip target ip address
#' @param page page number of query
#' @param auth_token authentication token for the API. See [be_auth_token()]
#' @export
imageQuery <- function(ip, page, auth_token = be_auth_token()) {
  content_query <- httr::GET(
    url = sprintf("https://api.binaryedge.io/v2/query/image/ip/%s", ip),
    httr::add_headers("X-Key" = auth_token),
    httr::user_agent(.be_ua)
  )

  httr::stop_for_status(content_query)

  raise <- httr::content(content_query, as = "text", encoding = "UTF-8")

  jsonlite::fromJSON(raise, flatten = TRUE) %>%
    data.table::as.data.table() %>%
    # unnest() %>%
    replace(. == "NULL", NA)
}

#' @rdname imageQuery
#' @export
image_query <- imageQuery
balgan/rbinaryedge documentation built on May 5, 2019, 2:44 a.m.