Skip to main content

openlark_platform/app_engine/apaas/v1/application/object/
mod.rs

1//! 应用对象相关 API
2
3pub mod oql_query;
4pub mod record;
5pub mod search;
6
7pub use oql_query::OqlQueryRequestBuilder;
8pub use record::batch_create as record_batch_create;
9pub use record::batch_delete as record_batch_delete;
10pub use record::batch_query as record_batch_query;
11pub use record::batch_update as record_batch_update;
12pub use record::create as record_create;
13pub use record::delete as record_delete;
14pub use record::patch as record_patch;
15pub use record::query as record_query;
16pub use search::RecordSearchRequestBuilder;
17
18use crate::PlatformConfig;
19use std::sync::Arc;
20
21/// application.object 资源服务(中间级,绑 namespace + object_api_name)
22#[derive(Debug, Clone)]
23pub struct ObjectService {
24    config: Arc<PlatformConfig>,
25    namespace: String,
26    object_api_name: String,
27}
28
29impl ObjectService {
30    /// 创建新的 object 服务
31    pub fn new(
32        config: Arc<PlatformConfig>,
33        namespace: impl Into<String>,
34        object_api_name: impl Into<String>,
35    ) -> Self {
36        Self {
37            config,
38            namespace: namespace.into(),
39            object_api_name: object_api_name.into(),
40        }
41    }
42    /// object.record 子资源(叶子级)
43    pub fn record(&self) -> record::RecordService {
44        record::RecordService::new(
45            self.config.as_ref().clone(),
46            self.namespace.clone(),
47            self.object_api_name.clone(),
48        )
49    }
50    /// 记录搜索
51    pub fn search(&self, search: impl Into<String>) -> search::RecordSearchRequestBuilder {
52        search::RecordSearchRequestBuilder::new(
53            self.config.as_ref().clone(),
54            self.namespace.clone(),
55            search,
56        )
57    }
58    /// OQL 查询
59    pub fn oql_query(&self, oql: impl Into<String>) -> oql_query::OqlQueryRequestBuilder {
60        oql_query::OqlQueryRequestBuilder::new(
61            self.config.as_ref().clone(),
62            self.namespace.clone(),
63            oql,
64        )
65    }
66}