openlark_workflow/v2/task/
mod.rs1pub mod add_dependencies;
2pub mod add_members;
3pub mod add_reminders;
4pub mod add_tasklist;
5pub mod complete;
6pub mod create;
7pub mod delete;
8pub mod get;
9pub mod list;
10pub mod models;
11pub mod patch;
12pub mod remove_dependencies;
13pub mod remove_members;
14pub mod remove_reminders;
15pub mod remove_tasklist;
16pub mod subtask;
17pub mod tasklists;
18pub mod uncomplete;
19pub mod update;
20
21use openlark_core::config::Config;
22use std::sync::Arc;
23
24#[derive(Clone)]
26pub struct Task {
27 config: Arc<Config>,
28}
29
30impl Task {
31 pub fn new(config: Arc<Config>) -> Self {
32 Self { config }
33 }
34
35 pub fn create(&self) -> create::CreateTaskRequest {
36 create::CreateTaskRequest::new(self.config.clone())
37 }
38
39 pub fn update(&self, task_guid: impl Into<String>) -> update::UpdateTaskRequest {
40 update::UpdateTaskRequest::new(self.config.clone(), task_guid.into())
41 }
42
43 pub fn delete(&self, task_guid: impl Into<String>) -> delete::DeleteTaskRequest {
44 delete::DeleteTaskRequest::new(self.config.clone(), task_guid.into())
45 }
46
47 pub fn get(&self, task_guid: impl Into<String>) -> get::GetTaskRequest {
48 get::GetTaskRequest::new(self.config.clone(), task_guid.into())
49 }
50
51 pub fn list(&self) -> list::ListTasksRequest {
52 list::ListTasksRequest::new(self.config.clone())
53 }
54
55 pub fn complete(&self, task_guid: impl Into<String>) -> complete::CompleteTaskRequest {
56 complete::CompleteTaskRequest::new(self.config.clone(), task_guid.into())
57 }
58
59 pub fn uncomplete(&self, task_guid: impl Into<String>) -> uncomplete::UncompleteTaskRequest {
60 uncomplete::UncompleteTaskRequest::new(self.config.clone(), task_guid.into())
61 }
62
63 pub fn subtask(&self, task_guid: impl Into<String>) -> subtask::Subtask {
65 subtask::Subtask::new(self.config.clone(), task_guid.into())
66 }
67
68 pub fn add_tasklist(&self, task_guid: impl Into<String>) -> add_tasklist::AddTasklistRequest {
70 add_tasklist::AddTasklistRequest::new(self.config.clone(), task_guid.into())
71 }
72
73 pub fn remove_tasklist(
75 &self,
76 task_guid: impl Into<String>,
77 ) -> remove_tasklist::RemoveTasklistRequest {
78 remove_tasklist::RemoveTasklistRequest::new(self.config.clone(), task_guid.into())
79 }
80
81 pub fn tasklists(&self, task_guid: impl Into<String>) -> tasklists::GetTaskTasklistsRequest {
83 tasklists::GetTaskTasklistsRequest::new(self.config.clone(), task_guid.into())
84 }
85
86 pub fn add_members(&self, task_guid: impl Into<String>) -> add_members::AddMembersRequest {
88 add_members::AddMembersRequest::new(self.config.clone(), task_guid.into())
89 }
90
91 pub fn remove_members(
93 &self,
94 task_guid: impl Into<String>,
95 ) -> remove_members::RemoveMembersRequest {
96 remove_members::RemoveMembersRequest::new(self.config.clone(), task_guid.into())
97 }
98
99 pub fn add_reminders(
101 &self,
102 task_guid: impl Into<String>,
103 ) -> add_reminders::AddRemindersRequest {
104 add_reminders::AddRemindersRequest::new(self.config.clone(), task_guid.into())
105 }
106
107 pub fn remove_reminders(
109 &self,
110 task_guid: impl Into<String>,
111 ) -> remove_reminders::RemoveRemindersRequest {
112 remove_reminders::RemoveRemindersRequest::new(self.config.clone(), task_guid.into())
113 }
114
115 pub fn add_dependencies(
117 &self,
118 task_guid: impl Into<String>,
119 ) -> add_dependencies::AddDependenciesRequest {
120 add_dependencies::AddDependenciesRequest::new(self.config.clone(), task_guid.into())
121 }
122
123 pub fn remove_dependencies(
125 &self,
126 task_guid: impl Into<String>,
127 ) -> remove_dependencies::RemoveDependenciesRequest {
128 remove_dependencies::RemoveDependenciesRequest::new(self.config.clone(), task_guid.into())
129 }
130}
131
132pub use add_dependencies::AddDependenciesRequest;
134pub use add_members::AddMembersRequest;
135pub use add_reminders::AddRemindersRequest;
136pub use add_tasklist::AddTasklistRequest;
137pub use complete::CompleteTaskRequest;
138pub use create::CreateTaskRequest;
139pub use delete::DeleteTaskRequest;
140pub use get::GetTaskRequest;
141pub use list::ListTasksRequest;
142pub use patch::UpdateTaskRequest;
143pub use remove_dependencies::RemoveDependenciesRequest;
144pub use remove_members::RemoveMembersRequest;
145pub use remove_reminders::RemoveRemindersRequest;
146pub use remove_tasklist::RemoveTasklistRequest;
147pub use tasklists::GetTaskTasklistsRequest;
148pub use uncomplete::UncompleteTaskRequest;
149
150pub use add_dependencies::{AddDependenciesResponse, TaskDependency};
152pub use add_members::{AddMembersResponse, TaskMember};
153pub use add_reminders::{AddRemindersResponse, TaskReminder};
154pub use add_tasklist::{AddTasklistBody, AddTasklistResponse};
155pub use models::{
156 CompleteTaskResponse, CreateTaskBody, CreateTaskResponse, DeleteTaskResponse, GetTaskResponse,
157 ListTasksResponse, TaskItem, UncompleteTaskResponse, UpdateTaskBody, UpdateTaskResponse,
158};
159pub use remove_dependencies::{RemoveDependenciesBody, RemoveDependenciesResponse};
160pub use remove_members::{RemoveMembersBody, RemoveMembersResponse};
161pub use remove_reminders::{RemoveRemindersBody, RemoveRemindersResponse};
162pub use remove_tasklist::{RemoveTasklistBody, RemoveTasklistResponse};
163pub use tasklists::{GetTaskTasklistsResponse, TaskTasklistItem};
164
165#[cfg(test)]
166#[allow(unused_variables)]
167#[allow(unused_imports)]
168mod tests {
169 use super::*;
170 use std::sync::Arc;
171
172 fn create_test_config() -> Arc<Config> {
173 Arc::new(
174 Config::builder()
175 .app_id("test_app")
176 .app_secret("test_secret")
177 .build(),
178 )
179 }
180
181 #[test]
182 fn test_task_v2_new() {
183 let config = create_test_config();
184 let _ = Task::new(config);
185 }
186
187 #[test]
188 fn test_task_v2_create() {
189 let config = create_test_config();
190 let task = Task::new(config);
191 let _ = task.create();
192 }
193
194 #[test]
195 fn test_task_v2_update() {
196 let config = create_test_config();
197 let task = Task::new(config);
198 let _ = task.update("task_guid_123");
199 }
200
201 #[test]
202 fn test_task_v2_delete() {
203 let config = create_test_config();
204 let task = Task::new(config);
205 let _ = task.delete("task_guid_123");
206 }
207
208 #[test]
209 fn test_task_v2_get() {
210 let config = create_test_config();
211 let task = Task::new(config);
212 let _ = task.get("task_guid_123");
213 }
214
215 #[test]
216 fn test_task_v2_list() {
217 let config = create_test_config();
218 let task = Task::new(config);
219 let _ = task.list();
220 }
221
222 #[test]
223 fn test_task_v2_complete() {
224 let config = create_test_config();
225 let task = Task::new(config);
226 let _ = task.complete("task_guid_123");
227 }
228
229 #[test]
230 fn test_task_v2_uncomplete() {
231 let config = create_test_config();
232 let task = Task::new(config);
233 let _ = task.uncomplete("task_guid_123");
234 }
235
236 #[test]
237 fn test_task_v2_subtask() {
238 let config = create_test_config();
239 let task = Task::new(config);
240 let _ = task.subtask("task_guid_123");
241 }
242
243 #[test]
244 fn test_task_v2_add_tasklist() {
245 let config = create_test_config();
246 let task = Task::new(config);
247 let _ = task.add_tasklist("task_guid_123");
248 }
249
250 #[test]
251 fn test_task_v2_remove_tasklist() {
252 let config = create_test_config();
253 let task = Task::new(config);
254 let _ = task.remove_tasklist("task_guid_123");
255 }
256
257 #[test]
258 fn test_task_v2_tasklists() {
259 let config = create_test_config();
260 let task = Task::new(config);
261 let _ = task.tasklists("task_guid_123");
262 }
263
264 #[test]
265 fn test_task_v2_add_members() {
266 let config = create_test_config();
267 let task = Task::new(config);
268 let _ = task.add_members("task_guid_123");
269 }
270
271 #[test]
272 fn test_task_v2_remove_members() {
273 let config = create_test_config();
274 let task = Task::new(config);
275 let _ = task.remove_members("task_guid_123");
276 }
277
278 #[test]
279 fn test_task_v2_add_reminders() {
280 let config = create_test_config();
281 let task = Task::new(config);
282 let _ = task.add_reminders("task_guid_123");
283 }
284
285 #[test]
286 fn test_task_v2_remove_reminders() {
287 let config = create_test_config();
288 let task = Task::new(config);
289 let _ = task.remove_reminders("task_guid_123");
290 }
291
292 #[test]
293 fn test_task_v2_add_dependencies() {
294 let config = create_test_config();
295 let task = Task::new(config);
296 let _ = task.add_dependencies("task_guid_123");
297 }
298
299 #[test]
300 fn test_task_v2_remove_dependencies() {
301 let config = create_test_config();
302 let task = Task::new(config);
303 let _ = task.remove_dependencies("task_guid_123");
304 }
305}