From 61e5c1ded9b8650a4e49ee1bd49be2f250408ef2 Mon Sep 17 00:00:00 2001 From: Doug Leasure Date: Wed, 30 Jun 2021 14:47:50 +0100 Subject: [PATCH] error handling for getAgeSexTable --- R/getAgeSexTable.R | 4 ++++ inst/woprVision/server.R | 28 +++++++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/R/getAgeSexTable.R b/R/getAgeSexTable.R index f146793..ff79352 100644 --- a/R/getAgeSexTable.R +++ b/R/getAgeSexTable.R @@ -26,6 +26,10 @@ getAgeSexTable <- function(country, version=NA, locator='https://api.worldpop.or response <- httr::content( httr::POST(url=endpoint, body=request, encode="form"), as='parsed') + if(response$error) { + warning(response$error_message, call.=F) + } + table <- data.frame(do.call(rbind.data.frame, response$data)) table$id <- names(response$data) diff --git a/inst/woprVision/server.R b/inst/woprVision/server.R index 9994187..cbe47e2 100644 --- a/inst/woprVision/server.R +++ b/inst/woprVision/server.R @@ -141,17 +141,23 @@ shinyServer( } # age sex table - if(version_info[input$data_select, 'local_agesex_table']){ - - showNotification(paste(rv$dict[["lg_localagesex"]], input$data_select), type='message') # message(paste0('Using local image tiles for ',input$data_select,'.')) - - rv$agesex_table <- getAgeSexTable(rv$country, rv$version, version_info[input$data_select, 'local_agesex_table_path']) - - } else { - - rv$agesex_table <- getAgeSexTable(rv$country, rv$version, locator=url) - - } + tryCatch({ + + if(version_info[input$data_select, 'local_agesex_table']){ + + showNotification(paste(rv$dict[["lg_localagesex"]], input$data_select), type='message') # message(paste0('Using local image tiles for ',input$data_select,'.')) + rv$agesex_table <- getAgeSexTable(rv$country, rv$version, version_info[input$data_select, 'local_agesex_table_path']) + + } else { + + rv$agesex_table <- getAgeSexTable(rv$country, rv$version, locator=url) + + } + }, warning=function(w){ + showNotification(as.character(w), type='warning', duration=20) + }, error=function(e){ + showNotification(as.character(e), type='error', duration=20) + }) # local basemap if(dir.exists(file.path(wopr_dir,'basemap'))){