Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ License: MIT + file LICENSE
URL: https://posit-dev.github.io/connectapi/, https://github.com/posit-dev/connectapi
BugReports: https://github.com/posit-dev/connectapi/issues
Imports:
bit64,
fs,
glue,
httr,
Expand Down
4 changes: 2 additions & 2 deletions R/connectapi.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ utils::globalVariables(
c(
".",
"access_type",
"connectapi_ptypes",
"connectapi_datetime_cols",
"connectapi_lazy_cols",
"guid",
"last_deployed_time",
"owner_guid",
Expand All @@ -27,6 +28,5 @@ current_connect_version <- "2024.03.0"

.onLoad <- function(...) {
vctrs::s3_register("dplyr::collect", "tbl_connect")
vctrs::s3_register("vctrs::vec_cast", "character.integer")
invisible()
}
17 changes: 8 additions & 9 deletions R/content.R
Original file line number Diff line number Diff line change
Expand Up @@ -788,7 +788,7 @@ get_jobs <- function(content) {
validate_R6_class(content, "Content")

jobs <- content$jobs()
parse_connectapi_typed(jobs, connectapi_ptypes$jobs, strict = TRUE)
parse_connectapi_typed(jobs, connectapi_datetime_cols$jobs)
}

#' Terminate Jobs
Expand Down Expand Up @@ -832,7 +832,7 @@ terminate_jobs <- function(content, keys = NULL) {
keys <- all_jobs[all_jobs$status == 0, ]$key
if (length(keys) == 0) {
message("No active jobs found.")
return(vctrs::vec_ptype(connectapi_ptypes$job_termination))
return(tibble::tibble())
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks wrong, though I guess if there are no jobs it would return nothing...

}
}

Expand All @@ -841,8 +841,7 @@ terminate_jobs <- function(content, keys = NULL) {
res_df <- tibble::tibble(
parse_connectapi_typed(
res_content,
connectapi_ptypes$job_termination,
strict = TRUE
connectapi_datetime_cols$job_termination
)
)
# Errors will not have the job_key.
Expand Down Expand Up @@ -896,7 +895,7 @@ get_log <- function(job, max_log_lines = NULL) {
v1_url("content", job$app_guid, "jobs", job$key, "log"),
query = query
)
parse_connectapi_typed(res$entries, connectapi_ptypes$job_log)
parse_connectapi_typed(res$entries, connectapi_datetime_cols$job_log)
}

#' Set RunAs User
Expand Down Expand Up @@ -1141,7 +1140,7 @@ get_bundles <- function(content) {
validate_R6_class(content, "Content")
bundles <- content$get_bundles()

parse_connectapi_typed(bundles, connectapi_ptypes$bundles)
parse_connectapi_typed(bundles, connectapi_datetime_cols$bundles)
}

#' @rdname get_bundles
Expand Down Expand Up @@ -1347,7 +1346,7 @@ get_group_permission <- function(content, guid) {
get_content_permissions <- function(content, add_owner = TRUE) {
validate_R6_class(content, "Content")
res <- content$permissions(add_owner = add_owner)
parse_connectapi_typed(res, connectapi_ptypes$permissions)
parse_connectapi_typed(res, connectapi_datetime_cols$permissions)
}

#' Render a content item.
Expand Down Expand Up @@ -1495,7 +1494,7 @@ content_restart <- function(content) {
get_content_packages <- function(content) {
error_if_less_than(content$connect$version, "2025.01.0")
res <- content$packages()
parse_connectapi_typed(res, connectapi_ptypes$content_packages)
parse_connectapi_typed(res, connectapi_datetime_cols$content_packages)
}

#' Search for content on the Connect server
Expand Down Expand Up @@ -1627,5 +1626,5 @@ as.data.frame.connect_content_list <- function(
#' @export
as_tibble.connect_content_list <- function(x, ...) {
content_data <- purrr::map(x, "content")
parse_connectapi_typed(content_data, connectapi_ptypes$content)
parse_connectapi_typed(content_data, connectapi_datetime_cols$content)
}
24 changes: 10 additions & 14 deletions R/get.R
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ get_users <- function(
limit = limit
)

out <- parse_connectapi_typed(res, connectapi_ptypes$users)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$users)

return(out)
}
Expand Down Expand Up @@ -229,12 +229,8 @@ get_content <- function(
# v2024.06.0.
if (compare_connect_version(src$version, "2024.06.0") < 0) {
include <- "tags,owner"
content_ptype <- connectapi_ptypes$content[,
names(connectapi_ptypes$content) != "vanity_url"
]
} else {
include <- "tags,owner,vanity_url"
content_ptype <- connectapi_ptypes$content
}

res <- src$content(
Expand All @@ -253,7 +249,7 @@ get_content <- function(
res <- res %>% purrr::keep(.p = .p)
}

out <- parse_connectapi_typed(res, content_ptype)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$content)

return(out)
}
Expand Down Expand Up @@ -327,7 +323,7 @@ content_list_by_tag <- function(src, tag) {

res <- src$GET(v1_url("tags", tag_id, "content"))

out <- parse_connectapi_typed(res, connectapi_ptypes$content)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$content)
return(out)
}

Expand Down Expand Up @@ -425,7 +421,7 @@ get_usage_shiny <- function(

res <- page_cursor(src, res, limit = limit)

out <- parse_connectapi_typed(res, connectapi_ptypes$usage_shiny)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$usage_shiny)

return(out)
}
Expand Down Expand Up @@ -521,7 +517,7 @@ get_usage_static <- function(

res <- page_cursor(src, res, limit = limit)

out <- parse_connectapi_typed(res, connectapi_ptypes$usage_static)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$usage_static)

return(out)
}
Expand Down Expand Up @@ -658,7 +654,7 @@ as.data.frame.connect_list_hits <- function(
...,
unnest = TRUE
) {
usage_df <- parse_connectapi_typed(x, connectapi_ptypes$usage)
usage_df <- parse_connectapi_typed(x, connectapi_datetime_cols$usage)
if (unnest) {
if (!requireNamespace("tidyr", quietly = TRUE)) {
stop(
Expand Down Expand Up @@ -750,7 +746,7 @@ get_audit_logs <- function(

res <- page_cursor(src, res, limit = limit)

out <- parse_connectapi_typed(res, connectapi_ptypes$audit_logs)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$audit_logs)

return(out)
}
Expand Down Expand Up @@ -792,7 +788,7 @@ get_procs <- function(src) {
c(list(pid = y), x)
}
)
tbl_data <- parse_connectapi_typed(proc_prep, connectapi_ptypes$procs)
tbl_data <- parse_connectapi_typed(proc_prep, connectapi_datetime_cols$procs)

return(tbl_data)
}
Expand Down Expand Up @@ -1203,7 +1199,7 @@ get_packages <- function(src, name = NULL, page_size = 100000, limit = Inf) {
page_size = page_size
)
)
out <- parse_connectapi_typed(res, connectapi_ptypes$packages)
out <- parse_connectapi_typed(res, connectapi_datetime_cols$packages)

# Connect is standardizing on using `content_id` and `content_guid`.
# Handle that name change now in a forward-compatible way.
Expand Down Expand Up @@ -1239,5 +1235,5 @@ get_packages <- function(src, name = NULL, page_size = 100000, limit = Inf) {
#' @export
get_vanity_urls <- function(client) {
res <- client$vanities()
parse_connectapi_typed(res, connectapi_ptypes$vanities)
parse_connectapi_typed(res, connectapi_datetime_cols$vanities)
}
4 changes: 2 additions & 2 deletions R/groups.R
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ get_groups <- function(src, page_size = 500, prefix = NULL, limit = Inf) {
limit = limit
)

parse_connectapi_typed(res, connectapi_ptypes$groups)
parse_connectapi_typed(res, connectapi_datetime_cols$groups)
}

#' Get users within a specific group
Expand Down Expand Up @@ -172,7 +172,7 @@ get_one_groups_content <- function(src, guid) {
role = NA_character_
))
}
parsed <- parse_connectapi_typed(res, connectapi_ptypes$group_content)
parsed <- parse_connectapi_typed(res, connectapi_datetime_cols$group_content)

permissions_df <- purrr::list_rbind(
purrr::map(
Expand Down
2 changes: 1 addition & 1 deletion R/integrations.R
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ as.data.frame.connect_integration_list <- function(
#' @return A tibble with one row per integration.
#' @export
as_tibble.connect_integration_list <- function(x, ...) {
parse_connectapi_typed(x, connectapi_ptypes$integrations)
parse_connectapi_typed(x, connectapi_datetime_cols$integrations)
}

# Integration class ----
Expand Down
10 changes: 4 additions & 6 deletions R/lazy.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ tbl_connect <- function(

from <- arg_match(from)

# TODO: go get the vars we should expect...
vars <- connectapi_ptypes[[from]]
vars <- connectapi_lazy_cols[[from]]
if (is.null(vars)) vars <- character()

# TODO: figure out number of rows...
Expand Down Expand Up @@ -81,7 +80,7 @@ api_build.op_base_connect <- function(op, con, ..., n) {
} else {
stop(glue::glue("'{op$x}' is not recognized"))
}
parse_connectapi_typed(res, op$ptype)
parse_connectapi_typed(res, connectapi_datetime_cols[[op$x]])
}

cat_line <- function(...) {
Expand Down Expand Up @@ -124,13 +123,12 @@ op_base_connect <- function(x, vars) {
}

op_base <- function(x, vars, class = character()) {
stopifnot(is.character(vars) || is.character(names(vars)))
stopifnot(is.character(vars))

structure(
list(
x = x,
vars = names(vars),
ptype = vars
vars = vars
),
class = c(paste0("op_base_", class), "op_base", "op")
)
Expand Down
Loading
Loading