From d169b3f500fd3efcd55ea00bfacedbe63860b2af Mon Sep 17 00:00:00 2001 From: RiboRings Date: Fri, 13 Nov 2026 11:57:31 +0900 Subject: [PATCH] Preserve raw calls and upgrade site to bootstrap 5 --- DESCRIPTION | 8 +- NAMESPACE | 39 +-- NEWS | 1 + R/get.R | 15 +- R/link.R | 18 +- R/list.R | 32 ++- R/model.R | 10 +- R/types.R | 4 +- README.md | 2 +- man/epGet.Rd | 6 +- man/epLink.Rd | 4 + man/epList.Rd | 4 + man/epModel.Rd | 4 + pkgdown/_pkgdown.yml | 8 + tests/httptest/get/package_reaction/wrong.R | 10 +- tests/httptest/link/package_compound/wrong.R | 10 +- tests/httptest/list/package.json | 274 +++++++++---------- tests/httptest/list/package/wrong/reaction.R | 10 +- tests/httptest/login/NA-2f7c1a-POST.R | 10 +- tests/httptest/model/util-e1f28b-POST.R | 6 +- 20 files changed, 272 insertions(+), 203 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index fbeecd7..6739796 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: enviPathR Title: Client for the 'enviPath' 'RESTful' API -Version: 1.0.2 +Version: 1.0.3 Authors@R: c(person(given = "Giulio", family = "Benedetti", role = c("aut", "cre", "cph"), @@ -23,7 +23,7 @@ Imports: BiocParallel, httr2, stats, - stringr, + stringi, tools Suggests: BiocStyle, @@ -36,8 +36,8 @@ Suggests: License: Artistic-2.0 Encoding: UTF-8 Roxygen: list(markdown = TRUE) -RoxygenNote: 8.0.0 -URL: https://envipath.github.io/enviPathR/ +URL: https://github.com/enviPath/enviPathR, https://envipath.github.io/enviPathR BugReports: https://github.com/enviPath/enviPathR/issues Config/testthat/edition: 3 VignetteBuilder: knitr +Config/roxygen2/version: 8.1.1 diff --git a/NAMESPACE b/NAMESPACE index 803317e..d14a21f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,21 +7,28 @@ export(epLogin) export(epLogout) export(epModel) export(epTypes) -importFrom(BiocParallel,bplapply) -importFrom(BiocParallel,bpmapply) -importFrom(BiocParallel,bpparam) -importFrom(httr2,req_body_form) -importFrom(httr2,req_cookie_preserve) -importFrom(httr2,req_error) -importFrom(httr2,req_method) -importFrom(httr2,req_perform) -importFrom(httr2,req_retry) -importFrom(httr2,req_throttle) -importFrom(httr2,req_url_path_append) -importFrom(httr2,request) -importFrom(httr2,resp_body_json) +importFrom(BiocParallel, + bplapply, + bpmapply, + bpparam +) +importFrom(httr2, + req_body_form, + req_cookie_preserve, + req_error, + req_get_body, + req_method, + req_perform, + req_retry, + req_throttle, + req_url_path_append, + request, + resp_body_json, + resp_url +) importFrom(stats,complete.cases) -importFrom(stringr,fixed) -importFrom(stringr,str_remove) -importFrom(stringr,str_split) +importFrom(stringi, + stri_replace_first_regex, + stri_split_fixed +) importFrom(tools,R_user_dir) diff --git a/NEWS b/NEWS index 4a2ed1f..ff6c4da 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,6 @@ Changes in version 1.0.x * Submitted to CRAN +* Included raw API calls in output metadata Changes in version 0.99.x * Introduced epTypes, epLogin, epLogout, epList, epLink, epGet and epModel \ No newline at end of file diff --git a/R/get.R b/R/get.R index ca25b0b..167e2d7 100644 --- a/R/get.R +++ b/R/get.R @@ -30,7 +30,11 @@ #' not serial. (Default: \code{5}) #' #' @returns -#' A list of objects. +#' A list of retrieved objects. +#' +#' @details +#' For transparency, the performed raw API calls can be accessed with +#' \code{attr(x, "call")}, where \code{x} is the output of \code{epGet}. #' #' @examples #' \dontshow{ @@ -76,10 +80,15 @@ epGet <- function(type, init = NULL, pkg = NULL, property = NULL, SIMPLIFY = FALSE, BPPARAM = BPPARAM ) + # Store raw API calls in corresponding attribute + attr(out, "call")$url <- vapply( + out, attr, character(1L), "call", USE.NAMES = FALSE + ) return(out) } -#' @importFrom httr2 request req_url_path_append req_cookie_preserve req_throttle resp_body_json +#' @importFrom httr2 request req_url_path_append req_cookie_preserve +#' req_throttle resp_url resp_body_json .ep_get <- function(init, type, pkg, property, rate){ # Prepare get request req <- request(eP_env$url) |> @@ -92,5 +101,7 @@ epGet <- function(type, init = NULL, pkg = NULL, property = NULL, resp <- .ep_perform(req) # Process response out <- resp_body_json(resp, simplifyVector = TRUE) + # Store raw API call in corresponding attribute + attr(out, "call") <- resp_url(resp) return(out) } diff --git a/R/link.R b/R/link.R index 1e97ff5..1eb0977 100644 --- a/R/link.R +++ b/R/link.R @@ -32,6 +32,10 @@ #' @returns #' A data frame with links between from and to. #' +#' @details +#' For transparency, the performed raw API calls can be accessed with +#' \code{attr(x, "call")}, where \code{x} is the output of \code{epLink}. +#' #' @examples #' \dontshow{ #' username <- Sys.getenv("EP_USERNAME") @@ -54,7 +58,7 @@ NULL #' @export #' @rdname epLink #' @importFrom BiocParallel bplapply bpparam -#' @importFrom stringr str_remove +#' @importFrom stringi stri_replace_first_regex #' @importFrom stats complete.cases epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate = 5){ # Check from @@ -97,6 +101,8 @@ epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate x = rep(init, lengths(out, use.names = FALSE)), y = unlist(out, use.names = FALSE) ) + # Store raw API calls in corresponding attribute + attr(linkmap, "call")$url <- vapply(out, attr, character(1L), "call") # Set linkmap column names colnames(linkmap) <- c(from, to) # Remove missing values @@ -108,19 +114,21 @@ epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate } # Remove structure identifier for compounds if( by == "pathway2compound" ){ - linkmap[to] <- str_remove(linkmap[[to]], "/structure/.*") + linkmap[to] <- linkmap[[to]] |> + stri_replace_first_regex("/structure/.*", "") } if( by == "pathway2reaction" ){ rxn_df <- epList("reaction", pkg = pkg) linkmap[to] <- rxn_df$id[rxn_df$name %in% linkmap[[to]]] } # Remove id prefix - linkmap[to] <- str_remove(linkmap[[to]], ".*/") + linkmap[to] <- stri_replace_first_regex(linkmap[[to]], ".*/", "") return(linkmap) } -#' @importFrom httr2 request req_url_path_append req_cookie_preserve req_throttle resp_body_json +#' @importFrom httr2 request req_url_path_append req_cookie_preserve +#' req_throttle resp_url resp_body_json .ep_link <- function(init, from, to, pkg, rate){ # Prepare link request req <- request(eP_env$url) |> @@ -137,6 +145,8 @@ epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate unlist(use.names = FALSE) # Simplify list to single object if( is.null(out) ) out <- NA + # Store raw API call in corresponding attribute + attr(out, "call") <- resp_url(resp) return(out) } diff --git a/R/list.R b/R/list.R index 970b678..8bf02da 100644 --- a/R/list.R +++ b/R/list.R @@ -15,6 +15,10 @@ #' @returns #' A data frame with all objects belonging to \code{type} in \code{pkg}. #' +#' @details +#' For transparency, the performed raw API call can be accessed with +#' \code{attr(x, "call")}, where \code{x} is the output of \code{epList}. +#' #' @examples #' \dontshow{ #' username <- Sys.getenv("EP_USERNAME") @@ -53,8 +57,8 @@ NULL #' @export #' @rdname epList -#' @importFrom httr2 req_url_path_append req_cookie_preserve resp_body_json -#' @importFrom stringr str_remove +#' @importFrom httr2 req_url_path_append req_cookie_preserve resp_url resp_body_json +#' @importFrom stringi stri_replace_first_regex epList <- function(type, pkg = NULL){ # Check type .check_type(type) @@ -64,36 +68,40 @@ epList <- function(type, pkg = NULL){ if( type == "package" && is_pkg ){ stop("'pkg' cannot be defined when listing packages.", call. = FALSE) } - + # Initialise request and preserve cookies req <- request(eP_env$url) |> req_cookie_preserve(eP_env$cookies) - + # Append package id to call url if( is_pkg ) req <- req_url_path_append(req, "package", pkg) - + # Append object type to call url req <- req_url_path_append(req, type) - + # Perform query resp <- .ep_perform(req) - + # Retrieve result from response out <- resp_body_json(resp, simplifyVector = TRUE) # Extract data.frame df <- out[[1L]] # Remove id prefix - df$id <- str_remove(df$id, ".*/") - + df$id <- stri_replace_first_regex(df$id, ".*/", "") + # Select relevant variables to keep to_keep <- c("name", "id") # Include review status except for type setting if( type != "setting" ) to_keep <- c(to_keep, "reviewStatus") - + # Add package-specific stats if( type == "package" ){ - + # Retrieve object types obj.types <- names(df$links[[1L]]) + # Count objects for each type obj.counts <- vapply(obj.types, .extract_obj_counts, numeric(nrow(df)), df) - + # Combine object counts into table df <- cbind(df, obj.counts) + # Add description and object counts to relevant variables to_keep <- c(to_keep, "description", obj.types) } # Select relevant columns df <- df[ , to_keep] + # Store raw API call in corresponding attribute + attr(df, "call")$url <- resp_url(resp) return(df) } diff --git a/R/model.R b/R/model.R index 26abda7..d895a7f 100644 --- a/R/model.R +++ b/R/model.R @@ -17,6 +17,10 @@ #' A list with two data frames with information on nodes and edges, #' respectively. #' +#' @details +#' For transparency, the performed raw API call can be accessed with +#' \code{attr(x, "call")}, where \code{x} is the output of \code{epModel}. +#' #' @examples #' \dontshow{ #' username <- Sys.getenv("EP_USERNAME") @@ -77,7 +81,8 @@ NULL #' @export #' @rdname epModel -#' @importFrom httr2 request req_method req_url_path_append req_body_form req_cookie_preserve resp_body_json +#' @importFrom httr2 request req_method req_url_path_append req_body_form +#' req_cookie_preserve req_get_body resp_url resp_body_json epModel <- function(smiles, setting = NULL){ # Check smiles if( !is.character(smiles) || !nzchar(smiles) ){ @@ -99,6 +104,9 @@ epModel <- function(smiles, setting = NULL){ resp <- .ep_perform(req) # Process response out <- resp_body_json(resp, simplifyVector = TRUE) + # Store raw API call in corresponding attribute + attr(out, "call")$url <- resp_url(resp) + attr(out, "call")$body <- req_get_body(req) # Process rule variables if( is.data.frame(out$edges$rule) ){ out$edges$ruleId <- out$edges$rule$uuid diff --git a/R/types.R b/R/types.R index 5caea21..62b450a 100644 --- a/R/types.R +++ b/R/types.R @@ -25,12 +25,12 @@ NULL #' @export #' @rdname epTypes -#' @importFrom stringr str_split fixed +#' @importFrom stringi stri_split_fixed epTypes <- function(){ # Retrieve links between object types links <- eP_env$links |> names() |> - str_split(fixed("2"), simplify = TRUE) |> + stri_split_fixed("2", simplify = TRUE) |> as.data.frame() # Give names to link columns colnames(links) <- c("from", "to") diff --git a/README.md b/README.md index 2f8e47d..7b1c643 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ [![pulls](https://img.shields.io/github/issues-pr/enviPath/enviPathR)](https://github.com/enviPath/enviPathR/pulls) [![CRAN status](https://www.r-pkg.org/badges/version/enviPathR)](https://CRAN.R-project.org/package=enviPathR) [![R-CMD-check](https://github.com/enviPath/enviPathR/workflows/build/badge.svg)](https://github.com/enviPath/enviPathR/actions) -[![](https://cranlogs.r-pkg.org/badges/enviPathR)](https://cran.r-project.org/package=enviPathR) [![CodeFactor](https://www.codefactor.io/repository/github/enviPath/envipathr/badge)](https://www.codefactor.io/repository/github/enviPath/envipathr) +[![downloads](https://cranlogs.r-pkg.org/badges/enviPathR)](https://cran.r-project.org/package=enviPathR) This package provides a client to the enviPath biotransformation database and pathway prediction system. It accesses enviPath resources through its [legacy diff --git a/man/epGet.Rd b/man/epGet.Rd index 307f5c5..1703c7a 100644 --- a/man/epGet.Rd +++ b/man/epGet.Rd @@ -39,11 +39,15 @@ requests per second to be sent to the enviPath API when \code{BPPARAM} is not serial. (Default: \code{5})} } \value{ -A list of objects. +A list of retrieved objects. } \description{ epGet returns raw objects from enviPath. } +\details{ +For transparency, the performed raw API calls can be accessed with +\code{attr(x, "call")}, where \code{x} is the output of \code{epGet}. +} \examples{ \dontshow{ username <- Sys.getenv("EP_USERNAME") diff --git a/man/epLink.Rd b/man/epLink.Rd index 69a93e6..97ed554 100644 --- a/man/epLink.Rd +++ b/man/epLink.Rd @@ -37,6 +37,10 @@ A data frame with links between from and to. \description{ epLink returns mappings between enviPath object types. } +\details{ +For transparency, the performed raw API calls can be accessed with +\code{attr(x, "call")}, where \code{x} is the output of \code{epLink}. +} \examples{ \dontshow{ username <- Sys.getenv("EP_USERNAME") diff --git a/man/epList.Rd b/man/epList.Rd index 66a7130..c3e593a 100644 --- a/man/epList.Rd +++ b/man/epList.Rd @@ -20,6 +20,10 @@ A data frame with all objects belonging to \code{type} in \code{pkg}. \description{ epList returns a list with info on objects available in enviPath. } +\details{ +For transparency, the performed raw API call can be accessed with +\code{attr(x, "call")}, where \code{x} is the output of \code{epList}. +} \examples{ \dontshow{ username <- Sys.getenv("EP_USERNAME") diff --git a/man/epModel.Rd b/man/epModel.Rd index 4d86911..c2a7dd1 100644 --- a/man/epModel.Rd +++ b/man/epModel.Rd @@ -22,6 +22,10 @@ respectively. epModel predicts the biotransformation pathway for a compound expressed with \code{smiles} using the selected model \code{setting}. } +\details{ +For transparency, the performed raw API call can be accessed with +\code{attr(x, "call")}, where \code{x} is the output of \code{epModel}. +} \examples{ \dontshow{ username <- Sys.getenv("EP_USERNAME") diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 8a43e28..44ff7d9 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -1,4 +1,12 @@ +url: https://envipath.github.io/enviPathR destination: docs + +template: + bootstrap: 5 + light-switch: true + bslib: + navbar-bg: "#142D4A" + reference: - title: Work with enviPath API - contents: diff --git a/tests/httptest/get/package_reaction/wrong.R b/tests/httptest/get/package_reaction/wrong.R index b807eb6..2191fff 100644 --- a/tests/httptest/get/package_reaction/wrong.R +++ b/tests/httptest/get/package_reaction/wrong.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package_reaction/wrong", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Sat, 24 Oct 2026 03:32:42 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Fri, 13 Nov 2026 02:48:31 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:42 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=TUPLC8ByY6rJp7zLNJIxlk4OAyW5YNW2; expires=Fri, 12 Nov 2027 02:48:31 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
\n \n
\n \n
\n
\n \n \n \n \n \n \n \n
\n\n \n\n
\n \n \n
\n \n \n \n \n \n \n
\n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 2.7e-05, connect = 0, - pretransfer = 0.000101, starttransfer = 0.389223, total = 0.389606 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 3.4e-05, connect = 0, + pretransfer = 0.000406, starttransfer = 0.38394, total = 0.38436 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/link/package_compound/wrong.R b/tests/httptest/link/package_compound/wrong.R index 83f4554..ba22f90 100644 --- a/tests/httptest/link/package_compound/wrong.R +++ b/tests/httptest/link/package_compound/wrong.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package_compound/wrong", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Sat, 24 Oct 2026 03:32:43 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Fri, 13 Nov 2026 02:48:32 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:43 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=TUPLC8ByY6rJp7zLNJIxlk4OAyW5YNW2; expires=Fri, 12 Nov 2027 02:48:32 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 4.5e-05, connect = 0, - pretransfer = 0.000137, starttransfer = 0.409759, total = 0.41017 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 2.9e-05, connect = 0, + pretransfer = 0.000157, starttransfer = 0.302038, total = 0.302402 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/list/package.json b/tests/httptest/list/package.json index e4422b5..4de312b 100644 --- a/tests/httptest/list/package.json +++ b/tests/httptest/list/package.json @@ -1,13 +1,13 @@ { "package": [ { - "description": "Package to make Prediction Models publicly available", - "id": "https://envipath.org/package/134886bb-b52e-4ad6-91d3-a02cecde6d95", + "description": "This Package was generated automatically for the batch prediction task.", + "id": "https://envipath.org/package/5b594bf6-56a8-4ce5-9a63-5fd4b525756e", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 0 + 1 ] }, { @@ -19,19 +19,19 @@ { "Compounds": [ "https://envipath.org/package_compound", - 0 + 24 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 0 + 38 ] }, { "Relative Reasoning": [ "https://envipath.org/package_relative-reasoning", - 5 + 0 ] }, { @@ -41,33 +41,33 @@ ] } ], - "name": "Public Prediction Models", + "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ], "reviewComment": "", - "reviewStatus": "reviewed", + "reviewStatus": "unreviewed", "writers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ] }, { - "description": "This Package was generated automatically for the batch prediction task.", - "id": "https://envipath.org/package/5b594bf6-56a8-4ce5-9a63-5fd4b525756e", + "description": "This package was generated during registration.", + "id": "https://envipath.org/package/aee2524b-79f3-4640-a519-aac543ac05e3", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 1 + 4 ] }, { @@ -79,13 +79,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 24 + 33 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 38 + 66 ] }, { @@ -101,7 +101,7 @@ ] } ], - "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620", + "name": "RiboRings’ Package", "primaryGroup": null, "readers": [ { @@ -122,7 +122,7 @@ }, { "description": "This Package was generated automatically for the batch prediction task.", - "id": "https://envipath.org/package/995230c9-167a-4108-8002-d8fadd242dff", + "id": "https://envipath.org/package/7a3bddd7-c1a2-4699-a885-8b9044fd4fe2", "links": [ { "Pathways": [ @@ -161,7 +161,7 @@ ] } ], - "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931", + "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194", "primaryGroup": null, "readers": [ { @@ -181,13 +181,13 @@ ] }, { - "description": "\"EAWAG-SOIL\" package contains pathway information from soil degradation studies, stored in a biotransformation reaction scheme in the object pathway<\/a>. This information is extracted from pesticide registration dossiers (draft assessment reports, DAR) made publically available through the European Food Safety Authority (EFSA<\/a>). The package also contains information on different experimental conditions that are stored in the object scenario<\/a>. Compounds<\/a> in the pathway are associated with a given scenario<\/a> if they have been observed under the specific experimental conditions. If available, a biotransformation half-life (DT50) value is additionally associated with a given compound in the pathway and a specific scenario. More details concerning enviPath conventions that were used to store specific data from DAR, and their description can be found in our wiki<\/a>.", - "id": "https://envipath.org/package/5882df9c-dae1-4d80-a40e-db4724271456", + "description": "string", + "id": "https://envipath.org/package/d1898032-350b-438a-a702-63906c7ed76a", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 317 + 0 ] }, { @@ -199,13 +199,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 2608 + 0 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 2445 + 0 ] }, { @@ -217,37 +217,37 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 4881 + 0 ] } ], - "name": "EAWAG-SOIL", + "name": "32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ], "reviewComment": "", - "reviewStatus": "reviewed", + "reviewStatus": "unreviewed", "writers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ] }, { - "description": "This package was generated during registration.", - "id": "https://envipath.org/package/aee2524b-79f3-4640-a519-aac543ac05e3", + "description": "The \"EAWAG-SEDIMENT\" package contains pathways and kinetic data from biodegradation studies performed in water-sediment systems. This information is extracted from pesticide registration dossiers (draft assessment reports, DAR) made publically available through the European Food Safety Authority (EFSA<\/a>). The package also contains information on different experimental conditions that are stored in the object scenario<\/a>. Compounds<\/a> in the pathway are associated with a given scenario<\/a> if they have been observed under the specific experimental conditions. If available, a total system biotransformation half-life (DT50) value is associated with a given compound in the pathway and a specific scenario, along with dissipation half-lives from the water and the sediment phases.", + "id": "https://envipath.org/package/f05e38d8-e9b4-4c3e-b0d8-9ab29966eccf", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 4 + 179 ] }, { @@ -259,13 +259,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 33 + 810 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 66 + 961 ] }, { @@ -277,37 +277,37 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 0 + 1622 ] } ], - "name": "RiboRings’ Package", + "name": "EAWAG-SEDIMENT", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "RiboRings" + "name": "admin" } ], "reviewComment": "", - "reviewStatus": "unreviewed", + "reviewStatus": "reviewed", "writers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "RiboRings" + "name": "admin" } ] }, { - "description": "This Package was generated automatically for the batch prediction task.", - "id": "https://envipath.org/package/c3c6699a-8c78-4987-af4d-4a041ffc448d", + "description": "A collection of literature-reported biotransformation pathways for per- and polyfluorinated alkyl substances (PFASs). Last updated on June 9th 2026.", + "id": "https://envipath.org/package/87a49584-d937-482c-9c33-25928dcb02a8", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 2 + 214 ] }, { @@ -319,13 +319,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 21 + 590 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 23 + 915 ] }, { @@ -337,37 +337,57 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 0 + 288 ] } ], - "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909", + "name": "enviPath-PFAS", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/159affc8-6988-4cd7-9d09-9dfb56075cd3", "identifier": "user", - "name": "RiboRings" + "name": "lorsbach" + }, + { + "id": "https://envipath.org/user/6971e514-9d36-4598-bf11-ee72562b7779", + "identifier": "user", + "name": "flurin_jenny" + }, + { + "id": "https://envipath.org/user/bbc3390d-a5f9-41e8-843d-7283f698236a", + "identifier": "user", + "name": "jasmin" } ], "reviewComment": "", - "reviewStatus": "unreviewed", + "reviewStatus": "reviewed", "writers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/159affc8-6988-4cd7-9d09-9dfb56075cd3", "identifier": "user", - "name": "RiboRings" + "name": "lorsbach" + }, + { + "id": "https://envipath.org/user/6971e514-9d36-4598-bf11-ee72562b7779", + "identifier": "user", + "name": "flurin_jenny" + }, + { + "id": "https://envipath.org/user/bbc3390d-a5f9-41e8-843d-7283f698236a", + "identifier": "user", + "name": "jasmin" } ] }, { - "description": "The EAWAG-SLUDGE<\/a> package contains pathways and kinetic information about microbially mediated transformation processes in biological wastewater treatment. The information was extracted from scientific publications in different journals. The biotransformation reaction schemes are stored as pathways<\/a>. The experimental conditions and additional information (e. g. sludge source) are collected in the scenario<\/a> objects. Any observed transformation products (compounds<\/a>) are linked to their corresponding experimental metadata (scenario<\/a>). Kinetic parameters (rate constants and/or half-lives) including corresponding scenarios are indicated for compounds for which such data is available. More details regarding enviPath conventions can be found in our wiki<\/a>.", - "id": "https://envipath.org/package/521c547a-fd2a-491c-ad5b-7eaa1577fb65", + "description": "Package to make Prediction Models publicly available", + "id": "https://envipath.org/package/134886bb-b52e-4ad6-91d3-a02cecde6d95", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 183 + 0 ] }, { @@ -379,29 +399,29 @@ { "Compounds": [ "https://envipath.org/package_compound", - 1067 + 0 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 494 + 0 ] }, { "Relative Reasoning": [ "https://envipath.org/package_relative-reasoning", - 0 + 5 ] }, { "Scenarios": [ "https://envipath.org/package_scenario", - 85 + 0 ] } ], - "name": "EAWAG-SLUDGE", + "name": "Public Prediction Models", "primaryGroup": null, "readers": [ { @@ -421,8 +441,8 @@ ] }, { - "description": "string", - "id": "https://envipath.org/package/7245f711-51d0-4b1e-b49d-99a9d9744c96", + "description": "This Package was generated automatically for the batch prediction task.", + "id": "https://envipath.org/package/995230c9-167a-4108-8002-d8fadd242dff", "links": [ { "Pathways": [ @@ -461,7 +481,7 @@ ] } ], - "name": "32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", + "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931", "primaryGroup": null, "readers": [ { @@ -481,13 +501,13 @@ ] }, { - "description": "This Package was generated automatically for the batch prediction task.", - "id": "https://envipath.org/package/7a3bddd7-c1a2-4699-a885-8b9044fd4fe2", + "description": "\"EAWAG-SOIL\" package contains pathway information from soil degradation studies, stored in a biotransformation reaction scheme in the object pathway<\/a>. This information is extracted from pesticide registration dossiers (draft assessment reports, DAR) made publically available through the European Food Safety Authority (EFSA<\/a>). The package also contains information on different experimental conditions that are stored in the object scenario<\/a>. Compounds<\/a> in the pathway are associated with a given scenario<\/a> if they have been observed under the specific experimental conditions. If available, a biotransformation half-life (DT50) value is additionally associated with a given compound in the pathway and a specific scenario. More details concerning enviPath conventions that were used to store specific data from DAR, and their description can be found in our wiki<\/a>.", + "id": "https://envipath.org/package/5882df9c-dae1-4d80-a40e-db4724271456", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 0 + 317 ] }, { @@ -499,13 +519,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 0 + 2608 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 0 + 2445 ] }, { @@ -517,37 +537,37 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 0 + 4881 ] } ], - "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194", + "name": "EAWAG-SOIL", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "RiboRings" + "name": "admin" } ], "reviewComment": "", - "reviewStatus": "unreviewed", + "reviewStatus": "reviewed", "writers": [ { - "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "RiboRings" + "name": "admin" } ] }, { - "description": "string", - "id": "https://envipath.org/package/d1898032-350b-438a-a702-63906c7ed76a", + "description": "This Package was generated automatically for the batch prediction task.", + "id": "https://envipath.org/package/c3c6699a-8c78-4987-af4d-4a041ffc448d", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 0 + 2 ] }, { @@ -559,13 +579,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 0 + 21 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 0 + 23 ] }, { @@ -581,7 +601,7 @@ ] } ], - "name": "32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", + "name": "Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909", "primaryGroup": null, "readers": [ { @@ -601,13 +621,13 @@ ] }, { - "description": "The \"EAWAG-SEDIMENT\" package contains pathways and kinetic data from biodegradation studies performed in water-sediment systems. This information is extracted from pesticide registration dossiers (draft assessment reports, DAR) made publically available through the European Food Safety Authority (EFSA<\/a>). The package also contains information on different experimental conditions that are stored in the object scenario<\/a>. Compounds<\/a> in the pathway are associated with a given scenario<\/a> if they have been observed under the specific experimental conditions. If available, a total system biotransformation half-life (DT50) value is associated with a given compound in the pathway and a specific scenario, along with dissipation half-lives from the water and the sediment phases.", - "id": "https://envipath.org/package/f05e38d8-e9b4-4c3e-b0d8-9ab29966eccf", + "description": "The EAWAG-SLUDGE<\/a> package contains pathways and kinetic information about microbially mediated transformation processes in biological wastewater treatment. The information was extracted from scientific publications in different journals. The biotransformation reaction schemes are stored as pathways<\/a>. The experimental conditions and additional information (e. g. sludge source) are collected in the scenario<\/a> objects. Any observed transformation products (compounds<\/a>) are linked to their corresponding experimental metadata (scenario<\/a>). Kinetic parameters (rate constants and/or half-lives) including corresponding scenarios are indicated for compounds for which such data is available. More details regarding enviPath conventions can be found in our wiki<\/a>.", + "id": "https://envipath.org/package/521c547a-fd2a-491c-ad5b-7eaa1577fb65", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 179 + 183 ] }, { @@ -619,13 +639,13 @@ { "Compounds": [ "https://envipath.org/package_compound", - 810 + 1067 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 961 + 494 ] }, { @@ -637,11 +657,11 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 1622 + 85 ] } ], - "name": "EAWAG-SEDIMENT", + "name": "EAWAG-SLUDGE", "primaryGroup": null, "readers": [ { @@ -661,31 +681,31 @@ ] }, { - "description": "Migration package for pathways, reactions and compounds from the EAWAG-BBD database", - "id": "https://envipath.org/package/32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", + "description": "string", + "id": "https://envipath.org/package/7245f711-51d0-4b1e-b49d-99a9d9744c96", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 219 + 0 ] }, { "Rules": [ "https://envipath.org/package_rule", - 499 + 0 ] }, { "Compounds": [ "https://envipath.org/package_compound", - 1399 + 0 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 1480 + 0 ] }, { @@ -697,55 +717,55 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 1915 + 0 ] } ], - "name": "EAWAG-BBD", + "name": "32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ], "reviewComment": "", - "reviewStatus": "reviewed", + "reviewStatus": "unreviewed", "writers": [ { - "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", + "id": "https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa", "identifier": "user", - "name": "admin" + "name": "RiboRings" } ] }, { - "description": "A collection of literature-reported biotransformation pathways for per- and polyfluorinated alkyl substances (PFASs). Last updated on June 9th 2026.", - "id": "https://envipath.org/package/87a49584-d937-482c-9c33-25928dcb02a8", + "description": "Migration package for pathways, reactions and compounds from the EAWAG-BBD database", + "id": "https://envipath.org/package/32de3cf4-e3e6-4168-956e-32fa5ddb0ce1", "links": [ { "Pathways": [ "https://envipath.org/package_pathway", - 214 + 219 ] }, { "Rules": [ "https://envipath.org/package_rule", - 0 + 499 ] }, { "Compounds": [ "https://envipath.org/package_compound", - 590 + 1399 ] }, { "Reactions": [ "https://envipath.org/package_reaction", - 915 + 1480 ] }, { @@ -757,46 +777,26 @@ { "Scenarios": [ "https://envipath.org/package_scenario", - 288 + 1915 ] } ], - "name": "enviPath-PFAS", + "name": "EAWAG-BBD", "primaryGroup": null, "readers": [ { - "id": "https://envipath.org/user/159affc8-6988-4cd7-9d09-9dfb56075cd3", - "identifier": "user", - "name": "lorsbach" - }, - { - "id": "https://envipath.org/user/6971e514-9d36-4598-bf11-ee72562b7779", - "identifier": "user", - "name": "flurin_jenny" - }, - { - "id": "https://envipath.org/user/bbc3390d-a5f9-41e8-843d-7283f698236a", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "jasmin" + "name": "admin" } ], "reviewComment": "", "reviewStatus": "reviewed", "writers": [ { - "id": "https://envipath.org/user/159affc8-6988-4cd7-9d09-9dfb56075cd3", - "identifier": "user", - "name": "lorsbach" - }, - { - "id": "https://envipath.org/user/6971e514-9d36-4598-bf11-ee72562b7779", - "identifier": "user", - "name": "flurin_jenny" - }, - { - "id": "https://envipath.org/user/bbc3390d-a5f9-41e8-843d-7283f698236a", + "id": "https://envipath.org/user/fce36893-bdb1-4a6f-87bd-5fd893feca89", "identifier": "user", - "name": "jasmin" + "name": "admin" } ] } diff --git a/tests/httptest/list/package/wrong/reaction.R b/tests/httptest/list/package/wrong/reaction.R index 42c95ec..93b9ec8 100644 --- a/tests/httptest/list/package/wrong/reaction.R +++ b/tests/httptest/list/package/wrong/reaction.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package/wrong/reaction", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Sat, 24 Oct 2026 03:32:44 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Fri, 13 Nov 2026 02:48:33 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:44 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=TUPLC8ByY6rJp7zLNJIxlk4OAyW5YNW2; expires=Fri, 12 Nov 2027 02:48:33 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n\n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 3.8e-05, connect = 0, - pretransfer = 0.000127, starttransfer = 0.415744, total = 0.416422 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 3.1e-05, connect = 0, + pretransfer = 0.000174, starttransfer = 0.37631, total = 0.376814 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/login/NA-2f7c1a-POST.R b/tests/httptest/login/NA-2f7c1a-POST.R index afcea48..ae80623 100644 --- a/tests/httptest/login/NA-2f7c1a-POST.R +++ b/tests/httptest/login/NA-2f7c1a-POST.R @@ -1,11 +1,11 @@ structure(list(method = "POST", url = "https://", status_code = 500L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Sat, 24 Oct 2026 03:32:45 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Fri, 13 Nov 2026 02:48:34 GMT", `Content-Type` = "text/html; charset=utf-8", `Content-Length` = "43025", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:45 GMT; Max-Age=31449600; Path=/; SameSite=Lax"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 3e-05, connect = 0, - pretransfer = 0.000116, starttransfer = 0.422185, total = 0.830267 + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=TUPLC8ByY6rJp7zLNJIxlk4OAyW5YNW2; expires=Fri, 12 Nov 2027 02:48:34 GMT; Max-Age=31449600; Path=/; SameSite=Lax"), class = "httr2_headers"), + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 3.2e-05, connect = 0, + pretransfer = 0.000204, starttransfer = 0.466815, total = 0.776248 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/model/util-e1f28b-POST.R b/tests/httptest/model/util-e1f28b-POST.R index b938604..f41f085 100644 --- a/tests/httptest/model/util-e1f28b-POST.R +++ b/tests/httptest/model/util-e1f28b-POST.R @@ -1,11 +1,11 @@ structure(list(method = "POST", url = "https://util", status_code = 403L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Sat, 24 Oct 2026 03:32:47 GMT", `Content-Type` = "application/json; charset=utf-8", + Date = "Fri, 13 Nov 2026 02:48:36 GMT", `Content-Type` = "application/json; charset=utf-8", `Content-Length` = "139", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", `Cross-Origin-Opener-Policy` = "same-origin"), class = "httr2_headers"), body = charToRaw("{\"message\": \"Getting Setting with id https://envipath.org/setting/1d915a48-286a-4394-9693-bfaa187326a5 failed due to insufficient rights!\"}"), - timing = c(redirect = 0, namelookup = 3.3e-05, connect = 0, - pretransfer = 0.000128, starttransfer = 0.412069, total = 0.412121 + timing = c(redirect = 0, namelookup = 3.2e-05, connect = 0, + pretransfer = 0.000168, starttransfer = 0.314536, total = 0.314576 ), cache = new.env(parent = emptyenv())), class = "httr2_response")