highlevel_api/apis/custom_fields/
client.rs1use super::types::*;
2use crate::{error::Result, http::HttpClient};
3use std::sync::Arc;
4
5pub struct CustomFieldsApi {
6 http: Arc<HttpClient>,
7}
8
9impl CustomFieldsApi {
10 pub fn new(http: Arc<HttpClient>) -> Self {
11 Self { http }
12 }
13
14 pub async fn list(&self, location_id: &str) -> Result<GetCustomFieldsResponse> {
15 #[derive(serde::Serialize)]
16 struct Q<'a> {
17 #[serde(rename = "locationId")]
18 location_id: &'a str,
19 }
20 self.http
21 .get_with_query("/custom-fields", &Q { location_id })
22 .await
23 }
24
25 pub async fn get(&self, field_id: &str) -> Result<GetCustomFieldResponse> {
26 self.http.get(&format!("/custom-fields/{field_id}")).await
27 }
28
29 pub async fn create(&self, params: &CreateCustomFieldParams) -> Result<GetCustomFieldResponse> {
30 self.http.post("/custom-fields", params).await
31 }
32
33 pub async fn update(
34 &self,
35 field_id: &str,
36 params: &CreateCustomFieldParams,
37 ) -> Result<GetCustomFieldResponse> {
38 self.http
39 .put(&format!("/custom-fields/{field_id}"), params)
40 .await
41 }
42
43 pub async fn delete(&self, field_id: &str) -> Result<DeleteCustomFieldResponse> {
44 self.http
45 .delete(&format!("/custom-fields/{field_id}"))
46 .await
47 }
48}