openlark_workflow/v2/tasklist/activity_subscription/
mod.rs1pub mod create;
4pub mod delete;
6pub mod get;
8pub mod list;
10pub mod models;
12pub mod patch;
14
15use openlark_core::config::Config;
16use std::sync::Arc;
17
18#[derive(Clone)]
20pub struct ActivitySubscriptionResource {
21 config: Arc<Config>,
22 tasklist_guid: String,
23}
24
25impl ActivitySubscriptionResource {
26 pub fn new(config: Arc<Config>, tasklist_guid: impl Into<String>) -> Self {
28 Self {
29 config,
30 tasklist_guid: tasklist_guid.into(),
31 }
32 }
33
34 pub fn create(&self) -> create::CreateActivitySubscriptionRequest {
36 create::CreateActivitySubscriptionRequest::new(
37 self.config.clone(),
38 self.tasklist_guid.clone(),
39 )
40 }
41
42 pub fn get(&self, subscription_guid: impl Into<String>) -> get::GetActivitySubscriptionRequest {
44 get::GetActivitySubscriptionRequest::new(
45 self.config.clone(),
46 self.tasklist_guid.clone(),
47 subscription_guid.into(),
48 )
49 }
50
51 pub fn patch(
53 &self,
54 subscription_guid: impl Into<String>,
55 ) -> patch::UpdateActivitySubscriptionRequest {
56 patch::UpdateActivitySubscriptionRequest::new(
57 self.config.clone(),
58 self.tasklist_guid.clone(),
59 subscription_guid.into(),
60 )
61 }
62
63 pub fn delete(
65 &self,
66 subscription_guid: impl Into<String>,
67 ) -> delete::DeleteActivitySubscriptionRequest {
68 delete::DeleteActivitySubscriptionRequest::new(
69 self.config.clone(),
70 self.tasklist_guid.clone(),
71 subscription_guid.into(),
72 )
73 }
74
75 pub fn list(&self) -> list::ListActivitySubscriptionsRequest {
77 list::ListActivitySubscriptionsRequest::new(self.config.clone(), self.tasklist_guid.clone())
78 }
79}
80
81pub use create::CreateActivitySubscriptionRequest;
83pub use delete::DeleteActivitySubscriptionRequest;
84pub use get::GetActivitySubscriptionRequest;
85pub use list::ListActivitySubscriptionsRequest;
86pub use patch::UpdateActivitySubscriptionRequest;
87
88pub use models::{
90 ActivitySubscription, ActivitySubscriptionTargetType, ActivitySubscriptionType,
91 CreateActivitySubscriptionBody, CreateActivitySubscriptionResponse,
92 DeleteActivitySubscriptionResponse, GetActivitySubscriptionResponse,
93 ListActivitySubscriptionsResponse, UpdateActivitySubscriptionBody,
94 UpdateActivitySubscriptionResponse,
95};
96
97#[cfg(test)]
98#[allow(unused_imports)]
99mod tests {
100 use super::*;
101 use std::sync::Arc;
102
103 fn create_test_config() -> Arc<Config> {
104 Arc::new(
105 Config::builder()
106 .app_id("test_app")
107 .app_secret("test_secret")
108 .build(),
109 )
110 }
111
112 #[test]
113 fn test_activity_subscription_resource_new() {
114 let config = create_test_config();
115 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
116 assert_eq!(resource.tasklist_guid, "tasklist_123");
117 }
118
119 #[test]
120 fn test_activity_subscription_create() {
121 let config = create_test_config();
122 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
123 let _request = resource.create();
124 }
125
126 #[test]
127 fn test_activity_subscription_get() {
128 let config = create_test_config();
129 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
130 let _request = resource.get("subscription_456");
131 }
132
133 #[test]
134 fn test_activity_subscription_patch() {
135 let config = create_test_config();
136 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
137 let _request = resource.patch("subscription_456");
138 }
139
140 #[test]
141 fn test_activity_subscription_delete() {
142 let config = create_test_config();
143 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
144 let _request = resource.delete("subscription_456");
145 }
146
147 #[test]
148 fn test_activity_subscription_list() {
149 let config = create_test_config();
150 let resource = ActivitySubscriptionResource::new(config, "tasklist_123");
151 let _request = resource.list();
152 }
153}