Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fernandobarbalho/c814fdb794907645cae1978c096cdf8a to your computer and use it in GitHub Desktop.
Save fernandobarbalho/c814fdb794907645cae1978c096cdf8a to your computer and use it in GitHub Desktop.
Função para atualizar informações de licença todos os datasets de uma URL de ckan
update_all_licence <- function(key, url, limit=1000, license_title,license_id,license_url ){
#key: chave do usuário que tem direitos de atualizações sobre datasets
#url: url principal do índice do ckan
#license_title: título da licença
#license_id: id da licença
#license_url: url da licença
#limite: normalmente está associado ao número de datasets do usuário. Atribui-se um valor default de 1000
#Esse vetor registrará os erros ocorridos durante o processo de atualização
v_erro<-character()
#Busca todos os datasets da URL.
list_ds<- ckanr::package_list(url=url ,as="table", limit=limit)
#itera por toda a lista de datasets para fazer as atualizações
for (ds in list_ds){
print(ds)
#localiza o package da iteração corrente
list_search<- ckanr::package_search(ds, url=url)
ds_ckan<- ckanr::package_show(list_search[["results"]][[1]][["id"]],url="https://apickan.tesouro.gov.br/ckan", as= "table")
ds_ckan$license_title <- license_title
ds_ckan$license_id<- license_id
ds_ckan$license_url <- license_url
#tenta fazer a alteração
res<- try(ckanr::package_update(x= ds_ckan,
url=url,
id=list_search[["results"]][[1]][["id"]],
key = key))
if(inherits(res, "try-error")){
#se der erro, acrescenta o ds ao vetor de erro
v_erro <- c(v_erro,ds)
}
}
v_erro
}
@fernandobarbalho
Copy link
Author

Alterações para focar apenas nas informações de licença

@fernandobarbalho
Copy link
Author

Correção nos comentários dos atributos da função

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment