agentmail/client/
drafts.rs1use crate::client::NoBody;
2use crate::{Client, Error, Page, types::*, util::urlish};
3
4impl Client {
5 pub async fn create_draft(&self, inbox_id: &str, draft: CreateDraft) -> Result<Draft, Error> {
9 self.request(
10 reqwest::Method::POST,
11 &format!("/v0/inboxes/{}/drafts", urlish(inbox_id)),
12 &[],
13 Some(&draft),
14 )
15 .await
16 }
17
18 pub async fn list_drafts(&self, inbox_id: &str) -> Result<DraftList, Error> {
21 self.list_drafts_page(inbox_id, Page::default()).await
22 }
23
24 pub async fn list_drafts_page(&self, inbox_id: &str, page: Page) -> Result<DraftList, Error> {
28 self.request(
29 reqwest::Method::GET,
30 &format!("/v0/inboxes/{}/drafts", urlish(inbox_id)),
31 &page.query(),
32 None::<&NoBody>,
33 )
34 .await
35 }
36
37 pub async fn get_draft(&self, inbox_id: &str, draft_id: &str) -> Result<Draft, Error> {
39 self.request(
40 reqwest::Method::GET,
41 &format!(
42 "/v0/inboxes/{}/drafts/{}",
43 urlish(inbox_id),
44 urlish(draft_id),
45 ),
46 &[],
47 None::<&NoBody>,
48 )
49 .await
50 }
51
52 pub async fn update_draft(
57 &self,
58 inbox_id: &str,
59 draft_id: &str,
60 update: UpdateDraft,
61 ) -> Result<Draft, Error> {
62 self.request(
63 reqwest::Method::PATCH,
64 &format!(
65 "/v0/inboxes/{}/drafts/{}",
66 urlish(inbox_id),
67 urlish(draft_id),
68 ),
69 &[],
70 Some(&update),
71 )
72 .await
73 }
74
75 pub async fn delete_draft(&self, inbox_id: &str, draft_id: &str) -> Result<(), Error> {
77 self.request(
78 reqwest::Method::DELETE,
79 &format!(
80 "/v0/inboxes/{}/drafts/{}",
81 urlish(inbox_id),
82 urlish(draft_id),
83 ),
84 &[],
85 None::<&NoBody>,
86 )
87 .await
88 }
89
90 pub async fn send_draft(&self, inbox_id: &str, draft_id: &str) -> Result<SentMessage, Error> {
93 self.request(
94 reqwest::Method::POST,
95 &format!(
96 "/v0/inboxes/{}/drafts/{}/send",
97 urlish(inbox_id),
98 urlish(draft_id),
99 ),
100 &[],
101 None::<&NoBody>,
102 )
103 .await
104 }
105}