use openlark_core::{
SDKResult, api::ApiRequest, config::Config, http::Transport, req_option::RequestOption,
validate_required,
};
use std::sync::Arc;
#[derive(Debug, Clone)]
pub struct AppTableGetTableDetailRequest {
config: Arc<Config>,
app_id: String,
table_name: String,
}
impl AppTableGetTableDetailRequest {
pub fn new(config: Arc<Config>) -> Self {
Self {
config,
app_id: String::new(),
table_name: String::new(),
}
}
pub fn app_id(mut self, app_id: impl Into<String>) -> Self {
self.app_id = app_id.into();
self
}
pub fn table_name(mut self, table_name: impl Into<String>) -> Self {
self.table_name = table_name.into();
self
}
pub async fn execute(self) -> SDKResult<serde_json::Value> {
self.execute_with_options(RequestOption::default()).await
}
pub async fn execute_with_options(self, option: RequestOption) -> SDKResult<serde_json::Value> {
validate_required!(self.app_id, "app_id 不能为空");
validate_required!(self.table_name, "table_name 不能为空");
let path = format!(
"/open-apis/spark/v1/apps/{}/tables/{}",
self.app_id, self.table_name
);
let req: ApiRequest<serde_json::Value> = ApiRequest::get(path);
Transport::request_typed(req, &self.config, Some(option), "获取数据表详细信息").await
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn builder_initializes() {
let config = Arc::new(Config::default());
let _request = AppTableGetTableDetailRequest::new(config);
}
}