You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
#' Search for organisations matching a search term.
|
|
#'
|
|
#' @param query search terms
|
|
#' @param country if not `NULL` (the default) a single ISO2C country code
|
|
#' @param page page number (the query result set may have multiple pages; the current page number
|
|
#' of the result is a slot in the return value list.)
|
|
#' @param api_key see [networksdb_api_key()]
|
|
#' @return `list` with `total` (# of results for the search), `page` (the current page number), and
|
|
#' `results` which is a data frame of search results. if `nrow()` of this data frame is >
|
|
#' `total` then there are more pages available.
|
|
#' @export
|
|
org_search <- function(query, country = NULL, page = 1, api_key = networksdb_api_key()) {
|
|
|
|
httr::GET(
|
|
url = "https://networksdb.io/api/org-search",
|
|
query = list(
|
|
search = query[1],
|
|
country = country[1],
|
|
page = as.integer(page[1])
|
|
),
|
|
httr::add_headers(`X-Api-Key` = api_key),
|
|
.NETWORKS_DB_UA
|
|
) -> res
|
|
|
|
httr::stop_for_status(res)
|
|
|
|
out <- httr::content(res, as = "text", encoding = "UTF-8")
|
|
|
|
out <- jsonlite::fromJSON(out)
|
|
|
|
out
|
|
|
|
}
|