Skip to content
api_call.R 4.78 KiB
Newer Older
library(hash)
###############################################################
########################## i14y APIs ##########################
###############################################################

get_codelist <- function(
  identifier, 
  export_format="SDMX-ML", 
  version_format=2.1, 
  annotations=FALSE
  api <- api_class(
    api_type = "codelist",
    export_format = export_format,
    parameters = glue("annotations={tolower(annotations)}"),
    id = identifier
  )
  api$get_response()
}


get_content_configuration <- function(){
  api <- api_class(api_type = "content_configuration")
  api$get_response()
}

get_identifier_content <- function(identifier){
  api <- api_class(
    api_type = "content_configuration_identifier",
    id = identifier
  )
  api$get_response()
}
get_dataset_description <- function(identifier, language='fr'){
  api <- api_class(
    api_type = "dcat_dataset_description",
    id = identifier, 
    language = language
  )
  api$get_response()
}
get_dataset_information <- function(identifier, language='en'){
  api <- api_class(
    api_type = "dcat_dataset_information",
    id = identifier, 
    language = language
  api$get_response()



get_data_structure <- function(identifier, language='en'){
  api <- api_class(
    api_type = "dcat_data_structure",
    id = identifier, 
    language = language
  )
  api$get_response()
}



get_nomenclature_path_nodes <- function(
  identifier, 
  path='.',
  filters='', 
  language='en'
){
  api <- api_class(
    api_type = "nomenclature_path_nodes",
    id = identifier, 
    path = path,
    parameters = stringify(filters),
    language = language
  )
  api$get_response()
}


get_nomenclature_one_level<- function(
  identifier, 
  filters, 
  level_number=1, 
  language='en', 
  annotations=FALSE
){
  parameters = glue("language={language}&level={level_number}&annotations={tolower(annotations)}&{stringify(filters)}")
  print(parameters)
  api <- api_class(
    api_type = "nomenclature_one_level",
    id = identifier, 
    parameters = parameters,
    export_format= "CSV"
  )
  api$get_response()
}
get_nomenclature_multiple_levels <- function(
  identifier, 
  filters, 
  level_from=1, 
  level_to=2,
  language='en', 
  annotations=FALSE
){
  parameters = glue("language={language}&levelFrom={level_from}&levelTo={level_to}&annotations={tolower(annotations)}&{stringify(filters)}")
  api <- api_class(
    api_type = "nomenclature_multiple_levels",
    id = identifier, 
    parameters = parameters,
    export_format= "CSV"
  )
  api$get_response()
  ###############################################################
  # TODO: post processing in R
  ###############################################################
}


query_nomenclature <- function(
  identifier, 
  query,
  page_number,
  page_size,
  filters,
  language='en'
){
  parameters = glue("query={URLencode(query)}&page={page_number}&pageSize={page_size}&language={language}&{stringify(filters)}")
  api <- api_class(
    api_type = "nomenclature_search",
    id = identifier, 
    parameters = parameters
  )
  api$get_response()
}



###############################################################
########################## dcat APIs ##########################
###############################################################
dcat_list_all_agents <- function(){
  api <- api_class(
    api_type = "agents_list",
    root_url = DCAT_URL
  )
  api$get_response()
}


dcat_get_agent_from_id <- function(agent_id){
  api <- api_class(
    api_type = "agent_id",
    root_url = DCAT_URL,
    id = agent_id
  )
  api$get_response()
}


dcat_list_all_datasets <- function(){
  api <- api_class(
    api_type = "dataset_list",
    root_url = DCAT_URL
  )
  api$get_response()
}


dcat_get_distributions_from_dataset_id <- function(dataset_id){
  api <- api_class(
    api_type = "dataset_id_distributions",
    root_url = DCAT_URL,
    id = dataset_id
  )
  api$get_response()
}


dcat_get_dataset_from_id <- function(dataset_id){
  api <- api_class(
    api_type = "dataset_id",
    root_url = DCAT_URL,
    id = dataset_id
  )
  api$get_response()
}


dcat_get_dataset_from_identifier <- function(identifier){
  api <- api_class(
    api_type = "dataset_identifier",
    root_url = DCAT_URL,
    id = identifier
  )
  api$get_response()
}


dcat_get_distributions_from_dataset_identifier <- function(identifier){
  api <- api_class(
    api_type = "dataset_identifier_distributions",
    root_url = DCAT_URL,
    id = identifier
  )
  api$get_response()
}


dcat_list_all_distributions <- function(){
  api <- api_class(
    api_type = "distributions_list",
    root_url = DCAT_URL
  )
  api$get_response()
}


dcat_get_distribution_from_id <- function(distribution_id){
  api <- api_class(
    api_type = "distribution_id",
    root_url = DCAT_URL,
    id = distribution_id
  )
  api$get_response()
}