front_api/
signatures.rs

1use anyhow::Result;
2
3use crate::Client;
4#[derive(Clone, Debug)]
5pub struct Signatures {
6    pub client: Client,
7}
8
9impl Signatures {
10    #[doc(hidden)]
11    pub fn new(client: Client) -> Self {
12        Self { client }
13    }
14
15    #[doc = "List teammate signatures\n\nList the signatures belonging to the given \
16             teammate.\n\n**Parameters:**\n\n- `teammate_id: &'astr`: The teammate ID \
17             (required)\n\n```rust,no_run\nasync fn example_signatures_list_teammate() -> \
18             anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let \
19             result: front_api::types::ListTeammateSignaturesResponse =\n        \
20             client.signatures().list_teammate(\"some-string\").await?;\n    println!(\"{:?}\", \
21             result);\n    Ok(())\n}\n```"]
22    #[tracing::instrument]
23    pub async fn list_teammate<'a>(
24        &'a self,
25        teammate_id: &'a str,
26    ) -> Result<crate::types::ListTeammateSignaturesResponse, crate::types::error::Error> {
27        let mut req = self.client.client.request(
28            http::Method::GET,
29            &format!(
30                "{}/{}",
31                self.client.base_url,
32                "teammates/{teammate_id}/signatures".replace("{teammate_id}", teammate_id)
33            ),
34        );
35        req = req.bearer_auth(&self.client.token);
36        let resp = req.send().await?;
37        let status = resp.status();
38        if status.is_success() {
39            let text = resp.text().await.unwrap_or_default();
40            serde_json::from_str(&text).map_err(|err| {
41                crate::types::error::Error::from_serde_error(
42                    format_serde_error::SerdeError::new(text.to_string(), err),
43                    status,
44                )
45            })
46        } else {
47            Err(crate::types::error::Error::UnexpectedResponse(resp))
48        }
49    }
50
51    #[doc = "Create teammate signature\n\nCreate a new signature for the given teammate\n\n**Parameters:**\n\n- `teammate_id: &'astr`: The teammate ID (required)\n\n```rust,no_run\nasync fn example_signatures_create_teammate() -> anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let result: front_api::types::SignatureResponse = client\n        .signatures()\n        .create_teammate(\n            \"some-string\",\n            &front_api::types::CreatePrivateSignature {\n                name: \"some-string\".to_string(),\n                sender_info: Some(\"some-string\".to_string()),\n                body: \"some-string\".to_string(),\n                is_default: Some(true),\n                channel_ids: Some(vec![\"some-string\".to_string()]),\n            },\n        )\n        .await?;\n    println!(\"{:?}\", result);\n    Ok(())\n}\n```"]
52    #[tracing::instrument]
53    pub async fn create_teammate<'a>(
54        &'a self,
55        teammate_id: &'a str,
56        body: &crate::types::CreatePrivateSignature,
57    ) -> Result<crate::types::SignatureResponse, crate::types::error::Error> {
58        let mut req = self.client.client.request(
59            http::Method::POST,
60            &format!(
61                "{}/{}",
62                self.client.base_url,
63                "teammates/{teammate_id}/signatures".replace("{teammate_id}", teammate_id)
64            ),
65        );
66        req = req.bearer_auth(&self.client.token);
67        req = req.json(body);
68        let resp = req.send().await?;
69        let status = resp.status();
70        if status.is_success() {
71            let text = resp.text().await.unwrap_or_default();
72            serde_json::from_str(&text).map_err(|err| {
73                crate::types::error::Error::from_serde_error(
74                    format_serde_error::SerdeError::new(text.to_string(), err),
75                    status,
76                )
77            })
78        } else {
79            Err(crate::types::error::Error::UnexpectedResponse(resp))
80        }
81    }
82
83    #[doc = "List team signatures\n\nList the signatures belonging to the given \
84             team.\n\n**Parameters:**\n\n- `team_id: &'astr`: The team ID \
85             (required)\n\n```rust,no_run\nasync fn example_signatures_list_team() -> \
86             anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let \
87             result: front_api::types::ListTeamSignaturesResponse =\n        \
88             client.signatures().list_team(\"some-string\").await?;\n    println!(\"{:?}\", \
89             result);\n    Ok(())\n}\n```"]
90    #[tracing::instrument]
91    pub async fn list_team<'a>(
92        &'a self,
93        team_id: &'a str,
94    ) -> Result<crate::types::ListTeamSignaturesResponse, crate::types::error::Error> {
95        let mut req = self.client.client.request(
96            http::Method::GET,
97            &format!(
98                "{}/{}",
99                self.client.base_url,
100                "teams/{team_id}/signatures".replace("{team_id}", team_id)
101            ),
102        );
103        req = req.bearer_auth(&self.client.token);
104        let resp = req.send().await?;
105        let status = resp.status();
106        if status.is_success() {
107            let text = resp.text().await.unwrap_or_default();
108            serde_json::from_str(&text).map_err(|err| {
109                crate::types::error::Error::from_serde_error(
110                    format_serde_error::SerdeError::new(text.to_string(), err),
111                    status,
112                )
113            })
114        } else {
115            Err(crate::types::error::Error::UnexpectedResponse(resp))
116        }
117    }
118
119    #[doc = "Create team signature\n\nCreate a new signature for the given \
120             team\n\n**Parameters:**\n\n- `team_id: &'astr`: The teammate ID \
121             (required)\n\n```rust,no_run\nasync fn example_signatures_create_team() -> \
122             anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let \
123             result: front_api::types::SignatureResponse = client\n        .signatures()\n        \
124             .create_team(\n            \"some-string\",\n            \
125             &front_api::types::CreateSharedSignature {\n                name: \
126             \"some-string\".to_string(),\n                sender_info: \
127             Some(\"some-string\".to_string()),\n                body: \
128             \"some-string\".to_string(),\n                is_visible_for_all_teammate_channels: \
129             Some(true),\n                is_default: Some(true),\n                channel_ids: \
130             Some(vec![\"some-string\".to_string()]),\n            },\n        )\n        \
131             .await?;\n    println!(\"{:?}\", result);\n    Ok(())\n}\n```"]
132    #[tracing::instrument]
133    pub async fn create_team<'a>(
134        &'a self,
135        team_id: &'a str,
136        body: &crate::types::CreateSharedSignature,
137    ) -> Result<crate::types::SignatureResponse, crate::types::error::Error> {
138        let mut req = self.client.client.request(
139            http::Method::POST,
140            &format!(
141                "{}/{}",
142                self.client.base_url,
143                "teams/{team_id}/signatures".replace("{team_id}", team_id)
144            ),
145        );
146        req = req.bearer_auth(&self.client.token);
147        req = req.json(body);
148        let resp = req.send().await?;
149        let status = resp.status();
150        if status.is_success() {
151            let text = resp.text().await.unwrap_or_default();
152            serde_json::from_str(&text).map_err(|err| {
153                crate::types::error::Error::from_serde_error(
154                    format_serde_error::SerdeError::new(text.to_string(), err),
155                    status,
156                )
157            })
158        } else {
159            Err(crate::types::error::Error::UnexpectedResponse(resp))
160        }
161    }
162
163    #[doc = "Get signatures\n\nGet the given signature.\n\n**Parameters:**\n\n- `signature_id: &'astr`: The signature ID (required)\n\n```rust,no_run\nasync fn example_signatures_get() -> anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let result: front_api::types::SignatureResponse = client.signatures().get(\"some-string\").await?;\n    println!(\"{:?}\", result);\n    Ok(())\n}\n```"]
164    #[tracing::instrument]
165    pub async fn get<'a>(
166        &'a self,
167        signature_id: &'a str,
168    ) -> Result<crate::types::SignatureResponse, crate::types::error::Error> {
169        let mut req = self.client.client.request(
170            http::Method::GET,
171            &format!(
172                "{}/{}",
173                self.client.base_url,
174                "signatures/{signature_id}".replace("{signature_id}", signature_id)
175            ),
176        );
177        req = req.bearer_auth(&self.client.token);
178        let resp = req.send().await?;
179        let status = resp.status();
180        if status.is_success() {
181            let text = resp.text().await.unwrap_or_default();
182            serde_json::from_str(&text).map_err(|err| {
183                crate::types::error::Error::from_serde_error(
184                    format_serde_error::SerdeError::new(text.to_string(), err),
185                    status,
186                )
187            })
188        } else {
189            Err(crate::types::error::Error::UnexpectedResponse(resp))
190        }
191    }
192
193    #[doc = "Delete signature\n\nDelete signature\n\n**Parameters:**\n\n- `signature_id: &'astr`: \
194             The signature ID (required)\n\n```rust,no_run\nasync fn example_signatures_delete() \
195             -> anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    \
196             client.signatures().delete(\"some-string\").await?;\n    Ok(())\n}\n```"]
197    #[tracing::instrument]
198    pub async fn delete<'a>(
199        &'a self,
200        signature_id: &'a str,
201    ) -> Result<(), crate::types::error::Error> {
202        let mut req = self.client.client.request(
203            http::Method::DELETE,
204            &format!(
205                "{}/{}",
206                self.client.base_url,
207                "signatures/{signature_id}".replace("{signature_id}", signature_id)
208            ),
209        );
210        req = req.bearer_auth(&self.client.token);
211        let resp = req.send().await?;
212        let status = resp.status();
213        if status.is_success() {
214            Ok(())
215        } else {
216            Err(crate::types::error::Error::UnexpectedResponse(resp))
217        }
218    }
219
220    #[doc = "Update signature\n\nUpdate signature\n\n**Parameters:**\n\n- `signature_id: &'astr`: The signature ID (required)\n\n```rust,no_run\nasync fn example_signatures_update() -> anyhow::Result<()> {\n    let client = front_api::Client::new_from_env();\n    let result: front_api::types::SignatureResponse = client\n        .signatures()\n        .update(\n            \"some-string\",\n            &front_api::types::UpdateSignature {\n                name: Some(\"some-string\".to_string()),\n                sender_info: Some(\"some-string\".to_string()),\n                body: Some(\"some-string\".to_string()),\n                is_visible_for_all_teammate_channels: Some(false),\n                is_default: Some(true),\n                channel_ids: Some(vec![\"some-string\".to_string()]),\n            },\n        )\n        .await?;\n    println!(\"{:?}\", result);\n    Ok(())\n}\n```"]
221    #[tracing::instrument]
222    pub async fn update<'a>(
223        &'a self,
224        signature_id: &'a str,
225        body: &crate::types::UpdateSignature,
226    ) -> Result<crate::types::SignatureResponse, crate::types::error::Error> {
227        let mut req = self.client.client.request(
228            http::Method::PATCH,
229            &format!(
230                "{}/{}",
231                self.client.base_url,
232                "signatures/{signature_id}".replace("{signature_id}", signature_id)
233            ),
234        );
235        req = req.bearer_auth(&self.client.token);
236        req = req.json(body);
237        let resp = req.send().await?;
238        let status = resp.status();
239        if status.is_success() {
240            let text = resp.text().await.unwrap_or_default();
241            serde_json::from_str(&text).map_err(|err| {
242                crate::types::error::Error::from_serde_error(
243                    format_serde_error::SerdeError::new(text.to_string(), err),
244                    status,
245                )
246            })
247        } else {
248            Err(crate::types::error::Error::UnexpectedResponse(resp))
249        }
250    }
251}