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