R/projects.R

Defines functions space_project_list

Documented in space_project_list

#' List Projects
#'
#' Returns the projects in a given space.
#'
#' @inheritParams space_info
#' @inheritParams rscloud_space_list
#'
#' @export
space_project_list <- function(space, filters = NULL) {
  space_id <- space_id(space)
  space_project_list_url <- paste0("/spaces/", space_id, "/content/projects")

  query_list <- filters %>%
    purrr::map(~ list("filter" = .x)) %>%
    purrr::flatten()

  response <- rscloud_rest(space_project_list_url,
    query = query_list
  )

  verify_response_length(response, "projects", filters)

  projects <- collect_paginated(response, path = space_project_list_url, collection = 'projects', query = query_list)

  projects %>%
    tidy_list() %>%
    tidyr::hoist(.data$author, display_name = "display_name") %>%
    parse_times() %>%
    dplyr::select(
      .data$id, .data$name, .data$display_name, .data$author_id,
      .data$status,
      .data$updated_time,
      .data$visibility,
      .data$created_time, dplyr::everything()
    )
}
rstudio/rscloud documentation built on Oct. 8, 2022, 4:24 p.m.