Skip to main content

openlark_analytics/
service.rs

1//! 数据分析服务
2//!
3//! 提供数据分析相关的服务入口
4
5use crate::AnalyticsConfig;
6use std::sync::Arc;
7
8/// 数据分析服务
9///
10/// 数据分析服务的统一入口(search API 经 `crate::search::search::v2::*` 直路径访问,ADR 0001 扁平收口)。
11#[derive(Debug, Clone)]
12pub struct AnalyticsService {
13    /// 客户端配置
14    config: Arc<AnalyticsConfig>,
15}
16
17impl AnalyticsService {
18    /// 创建新的数据分析服务实例。
19    ///
20    /// 构造不会失败,故返回 `Self`(非 `SDKResult`)——#350 P9 接口形状撒谎修正,
21    /// 与 `PlatformService::new` / `UserService::new` 一致。
22    pub fn new(config: AnalyticsConfig) -> Self {
23        Self {
24            config: Arc::new(config),
25        }
26    }
27
28    /// 获取客户端配置
29    pub fn config(&self) -> Arc<AnalyticsConfig> {
30        self.config.clone()
31    }
32}
33
34#[cfg(test)]
35#[allow(unused_imports)]
36mod tests {
37    use super::*;
38
39    #[test]
40    fn test_service_creation() {
41        let config = AnalyticsConfig::builder()
42            .app_id("test_app_id")
43            .app_secret("test_app_secret")
44            .build();
45
46        let service = AnalyticsService::new(config);
47        assert_eq!(service.config().app_id(), "test_app_id");
48    }
49}