front_api/
contact_handles.rs1use anyhow::Result;
2
3use crate::Client;
4#[derive(Clone, Debug)]
5pub struct ContactHandles {
6 pub client: Client,
7}
8
9impl ContactHandles {
10 #[doc(hidden)]
11 pub fn new(client: Client) -> Self {
12 Self { client }
13 }
14
15 #[doc = "Add contact handle\n\nAdds a new handle to a contact.\n\n**Parameters:**\n\n- `contact_id: &'astr`: The contact ID (required)\n\n```rust,no_run\nasync fn example_contact_handles_add() -> anyhow::Result<()> {\n let client = front_api::Client::new_from_env();\n client\n .contact_handles()\n .add(\n \"some-string\",\n &front_api::types::ContactHandle {\n handle: \"some-string\".to_string(),\n source: front_api::types::Source::Custom,\n },\n )\n .await?;\n Ok(())\n}\n```"]
16 #[tracing::instrument]
17 pub async fn add<'a>(
18 &'a self,
19 contact_id: &'a str,
20 body: &crate::types::ContactHandle,
21 ) -> Result<(), crate::types::error::Error> {
22 let mut req = self.client.client.request(
23 http::Method::POST,
24 &format!(
25 "{}/{}",
26 self.client.base_url,
27 "contacts/{contact_id}/handles".replace("{contact_id}", contact_id)
28 ),
29 );
30 req = req.bearer_auth(&self.client.token);
31 req = req.json(body);
32 let resp = req.send().await?;
33 let status = resp.status();
34 if status.is_success() {
35 Ok(())
36 } else {
37 Err(crate::types::error::Error::UnexpectedResponse(resp))
38 }
39 }
40
41 #[doc = "Delete contact handle\n\nRemove a handle from a contact.\n\n**Parameters:**\n\n- \
42 `contact_id: &'astr`: The contact ID (required)\n\n```rust,no_run\nasync fn \
43 example_contact_handles_delete() -> anyhow::Result<()> {\n let client = \
44 front_api::Client::new_from_env();\n client\n .contact_handles()\n \
45 .delete(\n \"some-string\",\n \
46 &front_api::types::DeleteContactHandle {\n handle: \
47 \"some-string\".to_string(),\n source: \
48 front_api::types::Source::Custom,\n force: Some(true),\n \
49 },\n )\n .await?;\n Ok(())\n}\n```"]
50 #[tracing::instrument]
51 pub async fn delete<'a>(
52 &'a self,
53 contact_id: &'a str,
54 body: &crate::types::DeleteContactHandle,
55 ) -> Result<(), crate::types::error::Error> {
56 let mut req = self.client.client.request(
57 http::Method::DELETE,
58 &format!(
59 "{}/{}",
60 self.client.base_url,
61 "contacts/{contact_id}/handles".replace("{contact_id}", contact_id)
62 ),
63 );
64 req = req.bearer_auth(&self.client.token);
65 req = req.json(body);
66 let resp = req.send().await?;
67 let status = resp.status();
68 if status.is_success() {
69 Ok(())
70 } else {
71 Err(crate::types::error::Error::UnexpectedResponse(resp))
72 }
73 }
74}