smarty_rust_sdk/us_extract_api/
client.rs

1use crate::sdk::client::Client;
2use crate::sdk::error::SmartyError;
3use crate::sdk::options::Options;
4use crate::sdk::send_request;
5use crate::us_extract_api::lookup::Lookup;
6use reqwest::Method;
7use smarty_rust_proc_macro::smarty_api;
8
9#[smarty_api(
10    api_path = "",
11    default_url = "https://us-extract.api.smarty.com/",
12    lookup_style(lookup),
13    lookup_type = "Lookup",
14    result_type = "ExtractionResult",
15    custom_send
16)]
17pub struct USExtractClient;
18
19impl USExtractClient {
20    pub async fn send(&self, lookup: &mut Lookup) -> Result<(), SmartyError> {
21        let mut req = self
22            .client
23            .reqwest_client
24            .request(Method::POST, self.client.url.clone());
25        req = self.client.build_request(req);
26        req = req.header("Content-Type", "text/plain");
27        req = req.query(&lookup.clone().into_param_array());
28        req = req.body(lookup.text.clone());
29
30        let response = send_request(req).await?;
31
32        lookup.result = response;
33
34        Ok(())
35    }
36}