use crate::AnalyticsConfig;
use openlark_core::SDKResult;
use std::sync::Arc;
#[derive(Debug, Clone)]
pub struct AnalyticsService {
config: Arc<AnalyticsConfig>,
}
impl AnalyticsService {
pub fn new(config: AnalyticsConfig) -> SDKResult<Self> {
Ok(Self {
config: Arc::new(config),
})
}
pub fn config(&self) -> Arc<AnalyticsConfig> {
self.config.clone()
}
#[cfg(feature = "search")]
pub fn search(&self) -> crate::search::search::Search {
crate::search::search::Search::new(self.config.clone())
}
}
#[cfg(test)]
#[allow(unused_imports)]
mod tests {
use super::*;
#[test]
fn test_service_creation() {
let config = AnalyticsConfig::builder()
.app_id("test_app_id")
.app_secret("test_app_secret")
.build();
let service = AnalyticsService::new(config);
assert!(service.is_ok());
}
}