Skip to main content

gmail/request/
messages_trash.rs

1use serde_json::json;
2use crate::model::*;
3use crate::FluentRequest;
4use serde::{Serialize, Deserialize};
5use httpclient::InMemoryResponseExt;
6use crate::GmailClient;
7/**You should use this struct via [`GmailClient::messages_trash`].
8
9On request success, this will return a [`Message`].*/
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct MessagesTrashRequest {
12    pub id: String,
13    pub user_id: String,
14}
15impl MessagesTrashRequest {}
16impl FluentRequest<'_, MessagesTrashRequest> {}
17impl<'a> ::std::future::IntoFuture for FluentRequest<'a, MessagesTrashRequest> {
18    type Output = httpclient::InMemoryResult<Message>;
19    type IntoFuture = ::futures::future::BoxFuture<'a, Self::Output>;
20    fn into_future(self) -> Self::IntoFuture {
21        Box::pin(async move {
22            let url = &format!(
23                "/gmail/v1/users/{user_id}/messages/{id}/trash", id = self.params.id,
24                user_id = self.params.user_id
25            );
26            let mut r = self.client.client.post(url);
27            r = r.set_query(self.params);
28            r = self.client.authenticate(r);
29            let res = r.await?;
30            res.json().map_err(Into::into)
31        })
32    }
33}