1use serde::Serialize;
2
3use crate::session::{Session, CommonResponse};
4use crate::message::MessageID;
5use crate::error::{Result, assert};
6
7impl Session {
9 pub async fn recall(&self, message_id: MessageID) -> Result<()> {
10 #[derive(Serialize)]
11 struct Request {
12 #[serde(rename = "sessionKey")]
13 session_key: String,
14 target: MessageID,
15 }
16
17 let req = Request {
18 session_key: self.key.clone(),
19 target: message_id,
20 };
21
22 let resp: CommonResponse = self.client.post(&self.url("/recall"))
23 .json(&req).send().await?
24 .json().await?;
25
26 assert(resp.code, "Recall")
27 }
28}