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}