gewe_core/group/
manage.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct CreateChatroomRequest<'a> {
6 #[serde(rename = "appId")]
7 pub app_id: &'a str,
8 pub wxids: Vec<&'a str>,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize, Default)]
12#[serde(rename_all = "camelCase")]
13pub struct CreateChatroomResponse {
14 #[serde(default)]
15 pub head_img_base64: Option<String>,
16 pub chatroom_id: String,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct DisbandChatroomRequest<'a> {
22 #[serde(rename = "appId")]
23 pub app_id: &'a str,
24 #[serde(rename = "chatroomId")]
25 pub chatroom_id: &'a str,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct QuitChatroomRequest<'a> {
31 #[serde(rename = "appId")]
32 pub app_id: &'a str,
33 #[serde(rename = "chatroomId")]
34 pub chatroom_id: &'a str,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct ModifyChatroomNameRequest<'a> {
40 #[serde(rename = "appId")]
41 pub app_id: &'a str,
42 #[serde(rename = "chatroomName")]
43 pub chatroom_name: &'a str,
44 #[serde(rename = "chatroomId")]
45 pub chatroom_id: &'a str,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(rename_all = "camelCase")]
50pub struct ModifyChatroomRemarkRequest<'a> {
51 #[serde(rename = "appId")]
52 pub app_id: &'a str,
53 #[serde(rename = "chatroomRemark")]
54 pub chatroom_remark: &'a str,
55 #[serde(rename = "chatroomId")]
56 pub chatroom_id: &'a str,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(rename_all = "camelCase")]
61pub struct ModifyChatroomNickNameForSelfRequest<'a> {
62 #[serde(rename = "appId")]
63 pub app_id: &'a str,
64 #[serde(rename = "chatroomId")]
65 pub chatroom_id: &'a str,
66 #[serde(rename = "nickName")]
67 pub nick_name: &'a str,
68}
69
70pub type SimpleGroupResponse = ();
71
72#[cfg(test)]
73mod tests {
74 use super::*;
75
76 #[test]
77 fn test_create_chatroom_response_default() {
78 let resp = CreateChatroomResponse::default();
79 assert_eq!(resp.chatroom_id, "");
80 assert_eq!(resp.head_img_base64, None);
81 }
82
83 #[test]
84 fn test_create_chatroom_response_deserialization() {
85 let json = r#"{
86 "chatroomId": "room123",
87 "headImgBase64": "base64_data"
88 }"#;
89 let resp: CreateChatroomResponse = serde_json::from_str(json).unwrap();
90 assert_eq!(resp.chatroom_id, "room123");
91 assert_eq!(resp.head_img_base64, Some("base64_data".to_string()));
92 }
93
94 #[test]
95 fn test_create_chatroom_request_serialization() {
96 let req = CreateChatroomRequest {
97 app_id: "test_app",
98 wxids: vec!["wxid1", "wxid2", "wxid3"],
99 };
100 let json = serde_json::to_string(&req).unwrap();
101 assert!(json.contains("test_app"));
102 assert!(json.contains("wxid1"));
103 assert!(json.contains("wxid2"));
104 assert!(json.contains("wxid3"));
105 }
106
107 #[test]
108 fn test_disband_chatroom_request_serialization() {
109 let req = DisbandChatroomRequest {
110 app_id: "test_app",
111 chatroom_id: "room123",
112 };
113 let json = serde_json::to_string(&req).unwrap();
114 assert!(json.contains("test_app"));
115 assert!(json.contains("room123"));
116 }
117
118 #[test]
119 fn test_quit_chatroom_request_serialization() {
120 let req = QuitChatroomRequest {
121 app_id: "test_app",
122 chatroom_id: "room123",
123 };
124 let json = serde_json::to_string(&req).unwrap();
125 assert!(json.contains("test_app"));
126 assert!(json.contains("room123"));
127 }
128
129 #[test]
130 fn test_modify_chatroom_name_request_serialization() {
131 let req = ModifyChatroomNameRequest {
132 app_id: "test_app",
133 chatroom_name: "New Room Name",
134 chatroom_id: "room123",
135 };
136 let json = serde_json::to_string(&req).unwrap();
137 assert!(json.contains("test_app"));
138 assert!(json.contains("New Room Name"));
139 assert!(json.contains("room123"));
140 }
141
142 #[test]
143 fn test_modify_chatroom_remark_request_serialization() {
144 let req = ModifyChatroomRemarkRequest {
145 app_id: "test_app",
146 chatroom_remark: "Important Group",
147 chatroom_id: "room123",
148 };
149 let json = serde_json::to_string(&req).unwrap();
150 assert!(json.contains("test_app"));
151 assert!(json.contains("Important Group"));
152 assert!(json.contains("room123"));
153 }
154
155 #[test]
156 fn test_modify_chatroom_nickname_for_self_request_serialization() {
157 let req = ModifyChatroomNickNameForSelfRequest {
158 app_id: "test_app",
159 chatroom_id: "room123",
160 nick_name: "My Nickname",
161 };
162 let json = serde_json::to_string(&req).unwrap();
163 assert!(json.contains("test_app"));
164 assert!(json.contains("room123"));
165 assert!(json.contains("My Nickname"));
166 }
167}