gewe_http/message/
revoke.rs1use crate::client::GeweHttpClient;
2use gewe_core::{GeweError, RevokeMessageRequest};
3use tracing::instrument;
4
5impl GeweHttpClient {
6 #[instrument(skip(self))]
7 pub async fn revoke_message(
8 &self,
9 app_id: &str,
10 to_wxid: &str,
11 msg_id: &str,
12 new_msg_id: &str,
13 create_time: &str,
14 ) -> Result<(), GeweError> {
15 let body = RevokeMessageRequest {
16 app_id,
17 to_wxid,
18 msg_id,
19 new_msg_id,
20 create_time,
21 };
22 let _ = self
23 .post_api::<_, ()>("gewe/v2/api/message/revokeMsg", &body)
24 .await?;
25 Ok(())
26 }
27}
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32
33 #[test]
34 fn test_revoke_message_request_serialization() {
35 let req = RevokeMessageRequest {
36 app_id: "test_app",
37 to_wxid: "recipient_wxid",
38 msg_id: "msg_123456",
39 new_msg_id: "new_msg_123456",
40 create_time: "1234567890",
41 };
42 let json = serde_json::to_string(&req).expect("Failed to serialize");
43 assert!(json.contains("appId"));
44 assert!(json.contains("toWxid"));
45 assert!(json.contains("msgId"));
46 assert!(json.contains("newMsgId"));
47 assert!(json.contains("createTime"));
48 }
49}