R/mermaid_default_project.R

Defines functions mermaid_get_default_project mermaid_set_default_project

Documented in mermaid_get_default_project mermaid_set_default_project

#' Get or set default \code{mermaidr} MERMAID projects
#'
#' Configure default MERMAID projects. \code{mermaid_set_default_project} sets project(s) as the default to be used automatically in \code{mermaid_get_project_*} functions. \code{mermaid_get_default_project} lists the default projects.
#
#' @param project A way to identify MERMAID project(s). Can be project IDs (passed as a character vector directly) or projects resulting from \code{\link{mermaid_get_my_projects}} or \code{\link{mermaid_search_my_projects}}.
#'
#' @export
#' @rdname mermaid_default_project
#' @examples
#' \dontrun{
#' test_project <- mermaid_search_my_projects("Sharla test", include_test_projects = TRUE)
#' mermaid_set_default_project(test_project)
#' mermaid_get_default_project()
#'
#' # Since a default project is set, you can use e.g. mermaid_get_project_sites()
#' # without explicitly supplying a project
#' mermaid_get_project_sites()
#' }
mermaid_set_default_project <- function(project) {
  project_id <- as_id(project)

  if (length(project_id) > 1) {
    project_ids <- paste0(project_id, collapse = ",")
    Sys.setenv(MERMAIDR_DEFAULT_PROJECT = project_ids)
  } else {
    Sys.setenv(MERMAIDR_DEFAULT_PROJECT = project_id)
  }
}

#' @rdname mermaid_default_project
#' @export
mermaid_get_default_project <- function() {
  project_id <- Sys.getenv("MERMAIDR_DEFAULT_PROJECT")
  if (grepl(",", project_id)) {
    strsplit(project_id, ",")[[1]]
  } else {
    project_id
  }
}
data-mermaid/mermaidr documentation built on Jan. 26, 2025, 12:29 p.m.