-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapi-dependencies.R
121 lines (113 loc) · 3.67 KB
/
api-dependencies.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#' Task relationships
#'
#' Working dependencies xyz in ClickUp tasks (<https://clickup.com/api>).
#' @param task_id Task ID.
#' @param depends_on A waiting on dependency of the task.
#' One and only one of `depends_on` or `dependency_of` must be passed.
#' @param dependency_of A blocking dependency of the task.
#' One and only one of `depends_on` or `dependency_of` must be passed.
#' @param links_to Link to another task.
#' @param cu_token ClickUp personal access token or an access token from the OAuth flow.
#' The `CU_PAT` environment variable is used when `NULL`.
#'
#' @return
#'
#' A cu object.
#'
#' @seealso [cu-class] for the cu object class.
#'
#' @name api-dependencies
NULL
#' @export
#' @rdname api-dependencies
## Dependencies / Add Dependency
## POST https://api.clickup.com/api/v2/task/task_id/dependency
##
## task_id
## Example: 9hv.
## String
##
## To create a waiting on dependency, pass the property depends_on in the body.
## To create a blocking dependency, pass the property dependency_of.
## Both can not be passed in the same request.
##
## {
## "depends_on": "9hw"
## }
cu_add_dependency <- function(task_id, depends_on, dependency_of, cu_token = NULL) {
task_id <- cu_task_id(task_id)
if (missing(depends_on) && missing(dependency_of))
stop("Provide one of depends_on or dependency_of", call.=FALSE)
if (!missing(depends_on) && !missing(dependency_of))
stop("Provide only one of depends_on or dependency_of", call.=FALSE)
if (!missing(depends_on) && missing(dependency_of))
body <- list(depends_on=depends_on)
if (missing(depends_on) && !missing(dependency_of))
body <- list(dependency_of=dependency_of)
.cu_post("task", task_id, "dependency",
body=body, cu_token = cu_token)
}
#' @export
#' @rdname api-dependencies
## Dependencies / Delete Dependency
## DELETE https://api.clickup.com/api/v2/task/task_id/dependency?depends_on=9hz&dependency_of=9hz
##
## task_id
## Example: 9hv.
## String
##
## depends_on
## Example: 9hz.
## String
##
## dependency_of
## Example: 9hz.
## String
##
## One and only one of depends_on or dependency_of must be passed in the
## query params.
cu_delete_dependency <- function(task_id, depends_on, dependency_of, cu_token = NULL) {
task_id <- cu_task_id(task_id)
if (missing(depends_on) && missing(dependency_of))
stop("Provide one of depends_on or dependency_of", call.=FALSE)
if (!missing(depends_on) && !missing(dependency_of))
stop("Provide only one of depends_on or dependency_of", call.=FALSE)
if (!missing(depends_on) && missing(dependency_of))
query <- list(depends_on=depends_on)
if (missing(depends_on) && !missing(dependency_of))
query <- list(dependency_of=dependency_of)
.cu_delete("task", task_id, "dependency",
query=query, cu_token = cu_token)
}
#' @export
#' @rdname api-dependencies
## Dependencies / Add Task Link
## POST https://api.clickup.com/api/v2/task/task_id/link/links_to
##
## task_id
## Example: 9hv.
## String
##
## links_to
## Example: 9hz.
## String
cu_add_task_link <- function(task_id, links_to, cu_token = NULL) {
task_id <- cu_task_id(task_id)
.cu_post("task", task_id, "link", links_to, cu_token = cu_token)
}
#' @export
#' @rdname api-dependencies
## Dependencies / Delete Task Link
## DELETE https://api.clickup.com/api/v2/task/task_id/link/links_to
##
## task_id
## Example: 9hv.
## String
##
## links_to
## Example: 9hz.
## String
cu_delete_task_link <- function(task_id, links_to, cu_token = NULL) {
task_id <- cu_task_id(task_id)
.cu_delete("task", task_id, "link", links_to, cu_token = cu_token)
}