use crate::core::{config::Config, req_option::RequestOption, SDKResult};
pub use search_wiki::{search_wiki, SearchWikiRequest, SearchWikiResponse, WikiSearchItem};
pub use space::SpaceService;
pub use space_member::SpaceMemberService;
pub use space_node::SpaceNodeService;
pub use space_setting::SpaceSettingService;
pub use task::TaskService;
pub mod search_wiki;
pub mod space;
pub mod space_member;
pub mod space_node;
pub mod space_setting;
pub mod task;
pub struct V2 {
pub space: SpaceService,
pub space_member: SpaceMemberService,
pub space_node: SpaceNodeService,
pub space_setting: SpaceSettingService,
pub task: TaskService,
config: Config,
}
impl V2 {
pub fn new(config: Config) -> Self {
Self {
space: SpaceService::new(config.clone()),
space_member: SpaceMemberService::new(config.clone()),
space_node: SpaceNodeService::new(config.clone()),
space_setting: SpaceSettingService::new(config.clone()),
task: TaskService::new(config.clone()),
config: config.clone(),
}
}
pub async fn search_wiki(
&self,
request: SearchWikiRequest,
option: Option<RequestOption>,
) -> SDKResult<SearchWikiResponse> {
let result = search_wiki(request, &self.config, option).await?;
result.data.ok_or_else(|| {
crate::core::error::LarkAPIError::IllegalParamError(
"Response data is missing".to_string(),
)
})
}
}