Skip to main content

openlark_workflow/v2/tasklist/
mod.rs

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