Skip to main content

openlark_workflow/v2/tasklist/
mod.rs

1pub mod activity_subscription;
2pub mod add_members;
3pub mod create;
4pub mod delete;
5pub mod get;
6pub mod list;
7pub mod models;
8pub mod patch;
9pub mod remove_members;
10pub mod tasks;
11pub mod update;
12
13use openlark_core::config::Config;
14use std::sync::Arc;
15
16/// Tasklist:任务清单资源
17#[derive(Clone)]
18pub struct Tasklist {
19    config: Arc<Config>,
20}
21
22impl Tasklist {
23    pub fn new(config: Arc<Config>) -> Self {
24        Self { config }
25    }
26
27    pub fn create(&self) -> create::CreateTasklistRequest {
28        create::CreateTasklistRequest::new(self.config.clone())
29    }
30
31    pub fn get(&self, tasklist_guid: impl Into<String>) -> get::GetTasklistRequest {
32        get::GetTasklistRequest::new(self.config.clone(), tasklist_guid.into())
33    }
34
35    pub fn update(&self, tasklist_guid: impl Into<String>) -> update::UpdateTasklistRequest {
36        update::UpdateTasklistRequest::new(self.config.clone(), tasklist_guid.into())
37    }
38
39    pub fn delete(&self, tasklist_guid: impl Into<String>) -> delete::DeleteTasklistRequest {
40        delete::DeleteTasklistRequest::new(self.config.clone(), tasklist_guid.into())
41    }
42
43    pub fn list(&self) -> list::ListTasklistsRequest {
44        list::ListTasklistsRequest::new(self.config.clone())
45    }
46
47    /// 获取动态订阅资源
48    pub fn activity_subscription(
49        &self,
50        tasklist_guid: impl Into<String>,
51    ) -> activity_subscription::ActivitySubscriptionResource {
52        activity_subscription::ActivitySubscriptionResource::new(
53            self.config.clone(),
54            tasklist_guid.into(),
55        )
56    }
57
58    /// 获取清单任务列表
59    pub fn tasks(&self, tasklist_guid: impl Into<String>) -> tasks::GetTasklistTasksRequest {
60        tasks::GetTasklistTasksRequest::new(self.config.clone(), tasklist_guid.into())
61    }
62
63    /// 添加清单成员
64    pub fn add_members(
65        &self,
66        tasklist_guid: impl Into<String>,
67    ) -> add_members::AddTasklistMembersRequest {
68        add_members::AddTasklistMembersRequest::new(self.config.clone(), tasklist_guid.into())
69    }
70
71    /// 移除清单成员
72    pub fn remove_members(
73        &self,
74        tasklist_guid: impl Into<String>,
75    ) -> remove_members::RemoveTasklistMembersRequest {
76        remove_members::RemoveTasklistMembersRequest::new(self.config.clone(), tasklist_guid.into())
77    }
78}
79
80// 重新导出请求类型
81pub use add_members::AddTasklistMembersRequest;
82pub use create::CreateTasklistRequest;
83pub use delete::DeleteTasklistRequest;
84pub use get::GetTasklistRequest;
85pub use list::ListTasklistsRequest;
86pub use patch::UpdateTasklistRequest;
87pub use remove_members::RemoveTasklistMembersRequest;
88pub use tasks::GetTasklistTasksRequest;
89
90// 重新导出响应类型
91pub use add_members::{AddTasklistMembersBody, AddTasklistMembersResponse, TasklistMember};
92pub use models::{
93    CreateTasklistBody, CreateTasklistResponse, DeleteTasklistResponse, GetTasklistResponse,
94    ListTasklistsResponse, TasklistIcon, TasklistItem, UpdateTasklistBody, UpdateTasklistResponse,
95};
96pub use remove_members::{RemoveTasklistMembersBody, RemoveTasklistMembersResponse};
97
98#[cfg(test)]
99#[allow(unused_imports)]
100mod tests {
101    use super::*;
102    use std::sync::Arc;
103
104    fn create_test_config() -> Arc<Config> {
105        Arc::new(
106            Config::builder()
107                .app_id("test_app")
108                .app_secret("test_secret")
109                .build(),
110        )
111    }
112
113    #[test]
114    fn test_tasklist_new() {
115        let config = create_test_config();
116        let _tasklist = Tasklist::new(config);
117    }
118
119    #[test]
120    fn test_tasklist_create() {
121        let config = create_test_config();
122        let tasklist = Tasklist::new(config);
123        let _request = tasklist.create();
124    }
125
126    #[test]
127    fn test_tasklist_get() {
128        let config = create_test_config();
129        let tasklist = Tasklist::new(config);
130        let _request = tasklist.get("tasklist_guid_123");
131    }
132
133    #[test]
134    fn test_tasklist_update() {
135        let config = create_test_config();
136        let tasklist = Tasklist::new(config);
137        let _request = tasklist.update("tasklist_guid_123");
138    }
139
140    #[test]
141    fn test_tasklist_delete() {
142        let config = create_test_config();
143        let tasklist = Tasklist::new(config);
144        let _request = tasklist.delete("tasklist_guid_123");
145    }
146
147    #[test]
148    fn test_tasklist_list() {
149        let config = create_test_config();
150        let tasklist = Tasklist::new(config);
151        let _request = tasklist.list();
152    }
153
154    #[test]
155    fn test_tasklist_activity_subscription() {
156        let config = create_test_config();
157        let tasklist = Tasklist::new(config);
158        let _resource = tasklist.activity_subscription("tasklist_guid_123");
159    }
160
161    #[test]
162    fn test_tasklist_tasks() {
163        let config = create_test_config();
164        let tasklist = Tasklist::new(config);
165        let _request = tasklist.tasks("tasklist_guid_123");
166    }
167
168    #[test]
169    fn test_tasklist_add_members() {
170        let config = create_test_config();
171        let tasklist = Tasklist::new(config);
172        let _request = tasklist.add_members("tasklist_guid_123");
173    }
174
175    #[test]
176    fn test_tasklist_remove_members() {
177        let config = create_test_config();
178        let tasklist = Tasklist::new(config);
179        let _request = tasklist.remove_members("tasklist_guid_123");
180    }
181}