Skip to main content

mirai/
common.rs

1use serde::Serialize;
2
3use crate::session::{Session, CommonResponse};
4use crate::message::MessageID;
5use crate::error::{Result, assert};
6
7/// Others
8impl 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}