openlark_analytics/
service.rs1use crate::AnalyticsConfig;
6use openlark_core::SDKResult;
7use std::sync::Arc;
8
9#[derive(Debug, Clone)]
13pub struct AnalyticsService {
14 config: Arc<AnalyticsConfig>,
16}
17
18impl AnalyticsService {
19 pub fn new(config: AnalyticsConfig) -> SDKResult<Self> {
29 Ok(Self {
30 config: Arc::new(config),
31 })
32 }
33
34 pub fn config(&self) -> Arc<AnalyticsConfig> {
36 self.config.clone()
37 }
38
39 #[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}