front_api/
contact_handles.rs

1use 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}