pub mod add;
pub mod create;
pub mod delete;
pub mod get;
pub mod list;
pub mod models;
pub mod option;
pub mod remove;
pub mod update;
use openlark_core::config::Config;
use std::sync::Arc;
#[derive(Clone)]
pub struct CustomField {
config: Arc<Config>,
}
impl CustomField {
pub fn new(config: Arc<Config>) -> Self {
Self { config }
}
pub fn create(&self, resource_id: impl Into<String>) -> create::CreateCustomFieldRequest {
create::CreateCustomFieldRequest::new(self.config.clone(), resource_id.into())
}
pub fn get(&self, field_guid: impl Into<String>) -> get::GetCustomFieldRequest {
get::GetCustomFieldRequest::new(self.config.clone(), field_guid.into())
}
pub fn update(&self, field_guid: impl Into<String>) -> update::UpdateCustomFieldRequest {
update::UpdateCustomFieldRequest::new(self.config.clone(), field_guid.into())
}
pub fn delete(&self, field_guid: impl Into<String>) -> delete::DeleteCustomFieldRequest {
delete::DeleteCustomFieldRequest::new(self.config.clone(), field_guid.into())
}
pub fn list(&self) -> list::ListCustomFieldsRequest {
list::ListCustomFieldsRequest::new(self.config.clone())
}
pub fn option(
&self,
custom_field_guid: impl Into<String>,
) -> option::CustomFieldOptionResource {
option::CustomFieldOptionResource::new(self.config.clone(), custom_field_guid.into())
}
}
pub use add::AddCustomFieldRequest;
pub use create::CreateCustomFieldRequest;
pub use delete::DeleteCustomFieldRequest;
pub use get::GetCustomFieldRequest;
pub use list::ListCustomFieldsRequest;
pub use remove::RemoveCustomFieldRequest;
pub use update::UpdateCustomFieldRequest;
pub use models::{
CreateCustomFieldBody, CreateCustomFieldResponse, CustomFieldConfig, CustomFieldItem,
CustomFieldType, DeleteCustomFieldResponse, GetCustomFieldResponse, ListCustomFieldsResponse,
UpdateCustomFieldBody, UpdateCustomFieldResponse,
};
#[cfg(test)]
#[allow(unused_imports)]
mod tests {
use super::*;
use std::sync::Arc;
fn create_test_config() -> Arc<Config> {
Arc::new(
Config::builder()
.app_id("test_app")
.app_secret("test_secret")
.build(),
)
}
#[test]
fn test_custom_field_new() {
let config = create_test_config();
let _field = CustomField::new(config);
}
#[test]
fn test_custom_field_create() {
let config = create_test_config();
let field = CustomField::new(config);
let _request = field.create("tasklist_123");
}
#[test]
fn test_custom_field_get() {
let config = create_test_config();
let field = CustomField::new(config);
let _request = field.get("field_456");
}
#[test]
fn test_custom_field_update() {
let config = create_test_config();
let field = CustomField::new(config);
let _request = field.update("field_456");
}
#[test]
fn test_custom_field_delete() {
let config = create_test_config();
let field = CustomField::new(config);
let _request = field.delete("field_456");
}
#[test]
fn test_custom_field_list() {
let config = create_test_config();
let field = CustomField::new(config);
let _request = field.list();
}
#[test]
fn test_custom_field_option() {
let config = create_test_config();
let field = CustomField::new(config);
let _resource = field.option("field_456");
}
}