smarty_rust_sdk/us_extract_api/
client.rs1use 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}