Skip to main content

openlark_analytics/
service.rs

1//! 数据分析服务
2//!
3//! 提供数据分析相关的服务入口
4
5use crate::AnalyticsConfig;
6use openlark_core::SDKResult;
7use std::sync::Arc;
8
9/// 数据分析服务
10///
11/// 提供搜索、数据分析等功能的统一入口。
12#[derive(Debug, Clone)]
13pub struct AnalyticsService {
14    /// 客户端配置
15    config: Arc<AnalyticsConfig>,
16}
17
18impl AnalyticsService {
19    /// 创建新的数据分析服务实例
20    ///
21    /// # 参数
22    ///
23    /// * `config` - 数据分析服务配置
24    ///
25    /// # 返回
26    ///
27    /// 返回数据分析服务实例或错误
28    pub fn new(config: AnalyticsConfig) -> SDKResult<Self> {
29        Ok(Self {
30            config: Arc::new(config),
31        })
32    }
33
34    /// 获取客户端配置
35    pub fn config(&self) -> Arc<AnalyticsConfig> {
36        self.config.clone()
37    }
38
39    /// 搜索服务
40    ///
41    /// 提供全文搜索、智能搜索等功能。
42    #[cfg(feature = "search")]
43    pub fn search(&self) -> crate::search::search::Search {
44        crate::search::search::Search::new(self.config.clone())
45    }
46}
47
48#[cfg(test)]
49#[allow(unused_imports)]
50mod tests {
51    use super::*;
52
53    #[test]
54    fn test_service_creation() {
55        let config = AnalyticsConfig::builder()
56            .app_id("test_app_id")
57            .app_secret("test_app_secret")
58            .build();
59
60        let service = AnalyticsService::new(config);
61        assert!(service.is_ok());
62    }
63}