Skip to content

Commit

Permalink
В пакет добавлена функци ac_get_user_groups(), позволяющая запрашив…
Browse files Browse the repository at this point in the history
…ать метаданные групп пользователей.
  • Loading branch information
selesnow committed Jul 26, 2023
1 parent 233a241 commit 44ec3f4
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 3 deletions.
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: ractivecampaign
Type: Package
Title: Loading Data from 'ActiveCampaign API v3'
Version: 0.3.0.9000
Version: 0.5.0
Authors@R:
c(person(given = "Alexey",
family = "Seleznev",
Expand All @@ -17,4 +17,4 @@ Imports: dplyr, httr, pbapply, stringr, tidyr, cli, retry
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.1.2
RoxygenNote: 7.2.3
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export(ac_get_messages)
export(ac_get_deal_piplines)
export(ac_get_deal_activities)
export(ac_get_users)
export(ac_get_user_groups)
export(ac_get_contact_tags)
export(ac_get_tags)
export(ac_get_tasks)
Expand Down
6 changes: 5 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# ractivecampaign (development version)
# ractivecampaign 0.5.0

* В пакет добавлена функци `ac_get_user_groups()`, позволяющая запрашивать метаданные групп пользователей.

# ractivecampaign 0.4.0

* В функции `ac_get_deal_activities()` исправлена ошибка возникающая если по сделки не было никаких действий.

Expand Down
59 changes: 59 additions & 0 deletions R/ac_get_user_groups.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#' Return list of all existing user groups
#'
#' @return tibble with users group metadata
#' @export
#' @seealso See \href{https://developers.activecampaign.com/reference/list-all-groups}{ActiveCampaign API documentation}
#'
#' @examples
#' \dontrun{
#' users <- ac_get_users()
#' }
ac_get_user_groups <- function() {

ac_check_auth()

# vars
is_first_iteration <- TRUE
limit <- 100
offset <- 0
total <- NA
res <- list()

while ( (is.na(total) | offset <= total) | is_first_iteration ) {

# send request
retry(
{
ans <- GET(str_glue("{Sys.getenv('ACTIVECAMPAGN_API_URL')}/api/3/groups/"),
query = list(limit = limit,
offset = offset),
add_headers("Api-Token" = Sys.getenv('ACTIVECAMPAGN_API_TOKEN')))
},
until = ~ status_code(.) == 200,
interval = getOption('ractivecampaig.interval'),
max_tries = getOption('ractivecampaig.max_tries')
)

data <- content(ans)

if ( status_code(ans) > 299 ) {
stop(data$message)
}

out_data <- tibble(data = data$groups) %>%
unnest_wider(data)

is_first_iteration <- FALSE
offset <- offset + limit
total <- as.numeric(data$meta$total)
res <- append(res, list(out_data))

Sys.sleep(0.25)

}

res <- bind_rows(res)

return(res)

}
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* `ac_get_deal_activities()` - Список активностей по сделке
* `ac_get_deal_notes()` - Список заметок к сделке
* `ac_get_users()` - Список пользователей
* `ac_get_user_groups()` - Список групп пользователей
* `ac_get_tags()` - Получить список всех созданных тегов
* `ac_get_contacts()` - Список контактов
* `ac_get_custom_contact_fields_values()` - Значения пользовательских полей контактов
Expand Down
22 changes: 22 additions & 0 deletions man/ac_get_user_groups.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 44ec3f4

Please sign in to comment.