robespierre_http/
direct_messaging.rs

1use robespierre_models::{
2    channels::{Channel, DirectMessageChannel},
3    id::UserId,
4};
5
6use super::impl_prelude::*;
7
8impl Http {
9    /// Gets dm channels / groups.
10    pub async fn fetch_dm_channels(&self) -> Result<Vec<Channel>> {
11        Ok(self
12            .client
13            .get(ep!(self, "/users/dms"))
14            .send()
15            .await?
16            .error_for_status()?
17            .json()
18            .await?)
19    }
20
21    /// Opens a dm with user
22    pub async fn open_dm(&self, user_id: UserId) -> Result<DirectMessageChannel> {
23        Ok(self
24            .client
25            .get(ep!(self, "/users/{}/dm" user_id))
26            .send()
27            .await?
28            .error_for_status()?
29            .json()
30            .await?)
31    }
32}