hanzo_client/apis/
translate_api.rs1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetTranslateMemoryError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum PostTranslateError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum PutTranslateMemoryError {
36 UnknownValue(serde_json::Value),
37}
38
39
40pub async fn get_translate_memory(configuration: &configuration::Configuration, target: Option<&str>, state: Option<&str>, limit: Option<i32>) -> Result<models::MemoryPage, Error<GetTranslateMemoryError>> {
42 let p_target = target;
44 let p_state = state;
45 let p_limit = limit;
46
47 let uri_str = format!("{}/v1/translate/memory", configuration.base_path);
48 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
49
50 if let Some(ref param_value) = p_target {
51 req_builder = req_builder.query(&[("target", ¶m_value.to_string())]);
52 }
53 if let Some(ref param_value) = p_state {
54 req_builder = req_builder.query(&[("state", ¶m_value.to_string())]);
55 }
56 if let Some(ref param_value) = p_limit {
57 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
58 }
59 if let Some(ref user_agent) = configuration.user_agent {
60 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
61 }
62 if let Some(ref token) = configuration.bearer_access_token {
63 req_builder = req_builder.bearer_auth(token.to_owned());
64 };
65
66 let req = req_builder.build()?;
67 let resp = configuration.client.execute(req).await?;
68
69 let status = resp.status();
70 let content_type = resp
71 .headers()
72 .get("content-type")
73 .and_then(|v| v.to_str().ok())
74 .unwrap_or("application/octet-stream");
75 let content_type = super::ContentType::from(content_type);
76
77 if !status.is_client_error() && !status.is_server_error() {
78 let content = resp.text().await?;
79 match content_type {
80 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
81 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::MemoryPage`"))),
82 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::MemoryPage`")))),
83 }
84 } else {
85 let content = resp.text().await?;
86 let entity: Option<GetTranslateMemoryError> = serde_json::from_str(&content).ok();
87 Err(Error::ResponseError(ResponseContent { status, content, entity }))
88 }
89}
90
91pub async fn post_translate(configuration: &configuration::Configuration, ) -> Result<(), Error<PostTranslateError>> {
93
94 let uri_str = format!("{}/v1/translate", configuration.base_path);
95 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
96
97 if let Some(ref user_agent) = configuration.user_agent {
98 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
99 }
100 if let Some(ref token) = configuration.bearer_access_token {
101 req_builder = req_builder.bearer_auth(token.to_owned());
102 };
103
104 let req = req_builder.build()?;
105 let resp = configuration.client.execute(req).await?;
106
107 let status = resp.status();
108
109 if !status.is_client_error() && !status.is_server_error() {
110 Ok(())
111 } else {
112 let content = resp.text().await?;
113 let entity: Option<PostTranslateError> = serde_json::from_str(&content).ok();
114 Err(Error::ResponseError(ResponseContent { status, content, entity }))
115 }
116}
117
118pub async fn put_translate_memory(configuration: &configuration::Configuration, review_request: models::ReviewRequest) -> Result<models::MemoryEntry, Error<PutTranslateMemoryError>> {
120 let p_review_request = review_request;
122
123 let uri_str = format!("{}/v1/translate/memory", configuration.base_path);
124 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
125
126 if let Some(ref user_agent) = configuration.user_agent {
127 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
128 }
129 if let Some(ref token) = configuration.bearer_access_token {
130 req_builder = req_builder.bearer_auth(token.to_owned());
131 };
132 req_builder = req_builder.json(&p_review_request);
133
134 let req = req_builder.build()?;
135 let resp = configuration.client.execute(req).await?;
136
137 let status = resp.status();
138 let content_type = resp
139 .headers()
140 .get("content-type")
141 .and_then(|v| v.to_str().ok())
142 .unwrap_or("application/octet-stream");
143 let content_type = super::ContentType::from(content_type);
144
145 if !status.is_client_error() && !status.is_server_error() {
146 let content = resp.text().await?;
147 match content_type {
148 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
149 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::MemoryEntry`"))),
150 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::MemoryEntry`")))),
151 }
152 } else {
153 let content = resp.text().await?;
154 let entity: Option<PutTranslateMemoryError> = serde_json::from_str(&content).ok();
155 Err(Error::ResponseError(ResponseContent { status, content, entity }))
156 }
157}
158