Skip to content
format_request.R 676 B
Newer Older
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
#' API query for SDMX output
#'
#' @param url url to query
#'
#' @return dataframe response
sdmx_request <- function(url) {
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
  as.data.frame(rsdmx::readSDMX(url))
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
#' API query for JSON output
#'
#' @param url url to query
#'
#' @return response: dataframe or list of dataframes
json_request <- function(url) {
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
  jsonlite::fromJSON(rawToChar(httr::GET(url)$content))
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
#' API query for CSV output
#'
#' @param url url to query
#'
#' @return dataframe response
csv_request <- function(url) {
  read.csv(url)
Pauline Maury Laribière's avatar
Pauline Maury Laribière committed
}

# Request function based on expected response
REQUEST_FUNCTION_MAPPING <- hash::hash(
  "SDMX-ML" = sdmx_request,
  "JSON" = json_request,
  "CSV" = csv_request
)