open_lark/service/cloud_docs/wiki/v2/task/
mod.rs

1use crate::core::{config::Config, req_option::RequestOption, SDKResult};
2
3pub use get::{get_task, GetTaskRequest, GetTaskResponse, MoveResult, TaskDetail, TaskStatus};
4pub use move_docs_to_wiki::{
5    move_docs_to_wiki, MoveDocsToWikiRequest, MoveDocsToWikiResponse, MoveTask,
6};
7
8mod get;
9mod move_docs_to_wiki;
10
11/// 云文档任务服务
12pub struct TaskService {
13    config: Config,
14}
15
16impl TaskService {
17    pub fn new(config: Config) -> Self {
18        Self { config }
19    }
20
21    /// 移动云空间文档至知识空间
22    pub async fn move_docs_to_wiki(
23        &self,
24        request: MoveDocsToWikiRequest,
25        option: Option<RequestOption>,
26    ) -> SDKResult<MoveDocsToWikiResponse> {
27        let result = move_docs_to_wiki(request, &self.config, option).await?;
28        result.data.ok_or_else(|| {
29            crate::core::error::LarkAPIError::IllegalParamError(
30                "Response data is missing".to_string(),
31            )
32        })
33    }
34
35    /// 获取任务结果
36    pub async fn get(
37        &self,
38        request: GetTaskRequest,
39        option: Option<RequestOption>,
40    ) -> SDKResult<GetTaskResponse> {
41        let result = get_task(request, &self.config, option).await?;
42        result.data.ok_or_else(|| {
43            crate::core::error::LarkAPIError::IllegalParamError(
44                "Response data is missing".to_string(),
45            )
46        })
47    }
48}