From 71765a4ff66510c00c96ab9580bf42465c4f6e93 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 09:04:08 +0100 Subject: [PATCH 1/7] handle missing parent billing accounts --- R/billingInfo.R | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/R/billingInfo.R b/R/billingInfo.R index ced813c..37a232b 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -13,6 +13,12 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/billingAccounts/", billingAccountId), task = "Getting billing account info") billingInfo$id <- as.character(billingInfo$id) + if (is.null(billingInfo$parentBillingAccount)) { + billingInfo$parentBillingAccount <- NA + } else{ + billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) + } + if (asDataFrame == TRUE) { billingInfo <- tibble::as_tibble(billingInfo) return(billingInfo) @@ -133,6 +139,11 @@ getDatabaseBillingAccount <- function(databaseId, asDataFrame = TRUE) { databaseOwner <- getResource(paste0("/databases/", databaseId, "/billingAccount"), task = "Getting database owner") databaseOwner$id <- as.character(databaseOwner$id) + if (is.null(billingInfo$parentBillingAccount)) { + billingInfo$parentBillingAccount <- NA + } else{ + billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) + } if (asDataFrame) { databaseOwner <- as_tibble(databaseOwner) From 261e9575d808081af929f581ca4c0a5027ee0699 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 09:39:46 +0100 Subject: [PATCH 2/7] fix typo --- R/billingInfo.R | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/R/billingInfo.R b/R/billingInfo.R index 37a232b..b6dbdaf 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -15,7 +15,7 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { billingInfo$id <- as.character(billingInfo$id) if (is.null(billingInfo$parentBillingAccount)) { billingInfo$parentBillingAccount <- NA - } else{ + } else { billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) } @@ -137,18 +137,18 @@ getDatabaseBillingAccount <- function(databaseId, asDataFrame = TRUE) { if(missing(databaseId)) stop("A databaseId must be provided") stopifnot("A single databaseId must be provided" = (length(databaseId)==1)) - databaseOwner <- getResource(paste0("/databases/", databaseId, "/billingAccount"), task = "Getting database owner") - databaseOwner$id <- as.character(databaseOwner$id) + billingInfo <- getResource(paste0("/databases/", databaseId, "/billingAccount"), task = "Getting database billing account") + billingInfo$id <- as.character(billingInfo$id) if (is.null(billingInfo$parentBillingAccount)) { billingInfo$parentBillingAccount <- NA - } else{ + } else { billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) } - + if (asDataFrame) { - databaseOwner <- as_tibble(databaseOwner) + billingInfo <- as_tibble(billingInfo) } - return(databaseOwner) + return(billingInfo) } From 496a9e59e5fabd81153905e10c4ba32c42cadb35 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 14:33:32 +0100 Subject: [PATCH 3/7] add special handling for **empty** billing account addons as dataframe transform will fail otherwise... --- R/billingInfo.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/billingInfo.R b/R/billingInfo.R index ced813c..6431a41 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -13,6 +13,10 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/billingAccounts/", billingAccountId), task = "Getting billing account info") billingInfo$id <- as.character(billingInfo$id) + if (length(billingInfo$addons) == 0) { + billingInfo$addons <- c() + } + if (asDataFrame == TRUE) { billingInfo <- tibble::as_tibble(billingInfo) return(billingInfo) From f20d4d7ab18419de41920569ffb0b5e3f7ffba66 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 17:17:31 +0100 Subject: [PATCH 4/7] wrap addons list in another list for robust transform to dataframe --- R/billingInfo.R | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/R/billingInfo.R b/R/billingInfo.R index 6431a41..8d9c860 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -13,9 +13,7 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/billingAccounts/", billingAccountId), task = "Getting billing account info") billingInfo$id <- as.character(billingInfo$id) - if (length(billingInfo$addons) == 0) { - billingInfo$addons <- c() - } + billingInfo$addons <- list(billingInfo$addons) if (asDataFrame == TRUE) { billingInfo <- tibble::as_tibble(billingInfo) From 72facb6ad39edf905c592e34ba3f89f9960ea740 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 17:29:49 +0100 Subject: [PATCH 5/7] add missing addons list wrapper --- R/billingInfo.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/billingInfo.R b/R/billingInfo.R index 29cffbb..864b342 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -19,6 +19,7 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { } else { billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) } + if (asDataFrame == TRUE) { billingInfo <- tibble::as_tibble(billingInfo) return(billingInfo) @@ -139,6 +140,7 @@ getDatabaseBillingAccount <- function(databaseId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/databases/", databaseId, "/billingAccount"), task = "Getting database billing account") billingInfo$id <- as.character(billingInfo$id) + billingInfo$addons <- list(billingInfo$addons) if (is.null(billingInfo$parentBillingAccount)) { billingInfo$parentBillingAccount <- NA } else { From 1457e9ef4c9071a963f194591b2fc4c8957ef048 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Thu, 13 Mar 2025 18:30:46 +0100 Subject: [PATCH 6/7] Rename to `parentBillingAccountId` --- R/billingInfo.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/billingInfo.R b/R/billingInfo.R index 864b342..d546d74 100644 --- a/R/billingInfo.R +++ b/R/billingInfo.R @@ -14,10 +14,10 @@ getBillingAccount <- function(billingAccountId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/billingAccounts/", billingAccountId), task = "Getting billing account info") billingInfo$id <- as.character(billingInfo$id) billingInfo$addons <- list(billingInfo$addons) - if (is.null(billingInfo$parentBillingAccount)) { - billingInfo$parentBillingAccount <- NA + if (is.null(billingInfo$parentBillingAccountId)) { + billingInfo$parentBillingAccountId <- NA } else { - billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) + billingInfo$parentBillingAccountId <- as.character(billingInfo$parentBillingAccountId) } if (asDataFrame == TRUE) { @@ -141,10 +141,10 @@ getDatabaseBillingAccount <- function(databaseId, asDataFrame = TRUE) { billingInfo <- getResource(paste0("/databases/", databaseId, "/billingAccount"), task = "Getting database billing account") billingInfo$id <- as.character(billingInfo$id) billingInfo$addons <- list(billingInfo$addons) - if (is.null(billingInfo$parentBillingAccount)) { - billingInfo$parentBillingAccount <- NA + if (is.null(billingInfo$parentBillingAccountId)) { + billingInfo$parentBillingAccountId <- NA } else { - billingInfo$parentBillingAccount <- as.character(billingInfo$parentBillingAccount) + billingInfo$parentBillingAccountId <- as.character(billingInfo$parentBillingAccountId) } if (asDataFrame) { From 44b801958d16a196324ce6b09ec78da60800cef5 Mon Sep 17 00:00:00 2001 From: Jamie Whitehouse Date: Wed, 2 Apr 2025 09:53:33 +0200 Subject: [PATCH 7/7] update release number and date --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 706bf98..d312ca7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,8 +2,8 @@ Package: activityinfo Type: Package Title: R interface to ActivityInfo.org, an information management software for humanitarian and development operations -Version: 4.38 -Date: 2024-12-17 +Version: 4.39 +Date: 2025-04-02 Authors@R: c( person("Alex", "Bertram", email = "alex@bedatadriven.com", role = c("aut", "cre")),