openlark_workflow/v2/custom_field/option/
mod.rs1pub mod create;
4pub mod patch;
6
7use openlark_core::config::Config;
8use std::sync::Arc;
9
10#[derive(Clone)]
12pub struct CustomFieldOptionResource {
13 config: Arc<Config>,
14 custom_field_guid: String,
15}
16
17impl CustomFieldOptionResource {
18 pub fn new(config: Arc<Config>, custom_field_guid: impl Into<String>) -> Self {
20 Self {
21 config,
22 custom_field_guid: custom_field_guid.into(),
23 }
24 }
25
26 pub fn create(&self) -> create::CreateCustomFieldOptionRequest {
28 create::CreateCustomFieldOptionRequest::new(
29 self.config.clone(),
30 self.custom_field_guid.clone(),
31 )
32 }
33
34 pub fn patch(&self, option_guid: impl Into<String>) -> patch::UpdateCustomFieldOptionRequest {
36 patch::UpdateCustomFieldOptionRequest::new(
37 self.config.clone(),
38 self.custom_field_guid.clone(),
39 option_guid.into(),
40 )
41 }
42}
43
44pub use create::CreateCustomFieldOptionRequest;
46pub use patch::UpdateCustomFieldOptionRequest;
47
48pub use create::{CreateCustomFieldOptionBody, CreateCustomFieldOptionResponse, CustomFieldOption};
50pub use patch::{UpdateCustomFieldOptionBody, UpdateCustomFieldOptionResponse};
51
52#[cfg(test)]
53#[allow(unused_imports)]
54mod tests {
55 use super::*;
56 use std::sync::Arc;
57
58 fn create_test_config() -> Arc<Config> {
59 Arc::new(
60 Config::builder()
61 .app_id("test_app")
62 .app_secret("test_secret")
63 .build(),
64 )
65 }
66
67 #[test]
68 fn test_custom_field_option_resource_new() {
69 let config = create_test_config();
70 let resource = CustomFieldOptionResource::new(config, "field_guid_123");
71 assert_eq!(resource.custom_field_guid, "field_guid_123");
72 }
73
74 #[test]
75 fn test_custom_field_option_create() {
76 let config = create_test_config();
77 let resource = CustomFieldOptionResource::new(config, "field_guid_123");
78 let _request = resource.create();
79 }
80
81 #[test]
82 fn test_custom_field_option_patch() {
83 let config = create_test_config();
84 let resource = CustomFieldOptionResource::new(config, "field_guid_123");
85 let _request = resource.patch("option_456");
86 }
87}