1use super::{configuration, Error};
2use crate::{apis::ResponseContent, models};
3use reqwest::StatusCode;
4use serde::{de, Deserialize, Deserializer, Serialize};
5
6#[derive(Clone, Debug)]
8pub struct GetGeSellHistoryByCodeParams {
9 pub code: String,
11 pub seller: Option<String>,
13 pub buyer: Option<String>,
15 pub page: Option<u32>,
17 pub size: Option<u32>,
19}
20
21impl GetGeSellHistoryByCodeParams {
22 pub fn new(
23 code: String,
24 seller: Option<String>,
25 buyer: Option<String>,
26 page: Option<u32>,
27 size: Option<u32>,
28 ) -> Self {
29 Self {
30 code,
31 seller,
32 buyer,
33 page,
34 size,
35 }
36 }
37}
38
39#[derive(Clone, Debug)]
41pub struct GetGeSellOrderByIdParams {
42 pub id: String,
44}
45
46impl GetGeSellOrderByIdParams {
47 pub fn new(id: String) -> Self {
48 Self { id }
49 }
50}
51
52#[derive(Clone, Debug)]
54pub struct GetGeSellOrdersParams {
55 pub code: Option<String>,
57 pub seller: Option<String>,
59 pub page: Option<u32>,
61 pub size: Option<u32>,
63}
64
65impl GetGeSellOrdersParams {
66 pub fn new(
67 code: Option<String>,
68 seller: Option<String>,
69 page: Option<u32>,
70 size: Option<u32>,
71 ) -> Self {
72 Self {
73 code,
74 seller,
75 page,
76 size,
77 }
78 }
79}
80
81#[derive(Debug, Clone, Serialize)]
83#[serde(untagged)]
84pub enum GetGeSellHistoryByCodeError {
85 Status404(models::ErrorResponseSchema),
87}
88
89impl<'de> Deserialize<'de> for GetGeSellHistoryByCodeError {
90 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
91 where
92 D: Deserializer<'de>,
93 {
94 let raw = models::ErrorResponseSchema::deserialize(deserializer)?;
95 match raw.error.code {
96 404 => Ok(Self::Status404(raw)),
97 _ => Err(de::Error::custom(format!(
98 "Unexpected error code: {}",
99 raw.error.code
100 ))),
101 }
102 }
103}
104
105#[derive(Debug, Clone, Serialize)]
107#[serde(untagged)]
108pub enum GetGeSellOrderByIdError {
109 Status404(models::ErrorResponseSchema),
111}
112
113impl<'de> Deserialize<'de> for GetGeSellOrderByIdError {
114 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
115 where
116 D: Deserializer<'de>,
117 {
118 let raw = models::ErrorResponseSchema::deserialize(deserializer)?;
119 match raw.error.code {
120 404 => Ok(Self::Status404(raw)),
121 _ => Err(de::Error::custom(format!(
122 "Unexpected error code: {}",
123 raw.error.code
124 ))),
125 }
126 }
127}
128
129#[derive(Debug, Clone, Serialize)]
131#[serde(untagged)]
132pub enum GetGeSellOrdersError {}
133
134impl<'de> Deserialize<'de> for GetGeSellOrdersError {
135 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
136 where
137 D: Deserializer<'de>,
138 {
139 let raw = models::ErrorResponseSchema::deserialize(deserializer)?;
140 Err(de::Error::custom(format!(
141 "Unexpected error code: {}",
142 raw.error.code
143 )))
144 }
145}
146
147pub async fn get_ge_sell_history_by_code(
149 configuration: &configuration::Configuration,
150 params: GetGeSellHistoryByCodeParams,
151) -> Result<models::DataPageGeOrderHistorySchema, Error<GetGeSellHistoryByCodeError>> {
152 let local_var_configuration = configuration;
153
154 let code = params.code;
156 let seller = params.seller;
158 let buyer = params.buyer;
160 let page = params.page;
162 let size = params.size;
164
165 let local_var_client = &local_var_configuration.client;
166
167 let local_var_uri_str = format!(
168 "{}/grandexchange/history/{code}",
169 local_var_configuration.base_path,
170 code = crate::apis::urlencode(code)
171 );
172 let mut local_var_req_builder =
173 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
174
175 if let Some(ref local_var_str) = seller {
176 local_var_req_builder =
177 local_var_req_builder.query(&[("seller", &local_var_str.to_string())]);
178 }
179 if let Some(ref local_var_str) = buyer {
180 local_var_req_builder =
181 local_var_req_builder.query(&[("buyer", &local_var_str.to_string())]);
182 }
183 if let Some(ref local_var_str) = page {
184 local_var_req_builder =
185 local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
186 }
187 if let Some(ref local_var_str) = size {
188 local_var_req_builder =
189 local_var_req_builder.query(&[("size", &local_var_str.to_string())]);
190 }
191 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
192 local_var_req_builder =
193 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
194 }
195
196 let local_var_req = local_var_req_builder.build()?;
197 let local_var_resp = local_var_client.execute(local_var_req).await?;
198
199 let local_var_status = local_var_resp.status();
200 let local_var_content = local_var_resp.text().await?;
201
202 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
203 serde_json::from_str(&local_var_content).map_err(Error::from)
204 } else {
205 let local_var_entity: Option<GetGeSellHistoryByCodeError> =
206 serde_json::from_str(&local_var_content).ok();
207 let local_var_error = ResponseContent {
208 status: local_var_status,
209 content: local_var_content,
210 entity: local_var_entity,
211 };
212 Err(Error::ResponseError(local_var_error))
213 }
214}
215
216pub async fn get_ge_sell_order_by_id(
218 configuration: &configuration::Configuration,
219 params: GetGeSellOrderByIdParams,
220) -> Result<models::GeOrderResponseSchema, Error<GetGeSellOrderByIdError>> {
221 let local_var_configuration = configuration;
222
223 let id = params.id;
225
226 let local_var_client = &local_var_configuration.client;
227
228 let local_var_uri_str = format!(
229 "{}/grandexchange/orders/{id}",
230 local_var_configuration.base_path,
231 id = crate::apis::urlencode(id)
232 );
233 let mut local_var_req_builder =
234 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
235
236 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
237 local_var_req_builder =
238 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
239 }
240
241 let local_var_req = local_var_req_builder.build()?;
242 let local_var_resp = local_var_client.execute(local_var_req).await?;
243
244 let local_var_status = local_var_resp.status();
245 let local_var_content = local_var_resp.text().await?;
246
247 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
248 serde_json::from_str(&local_var_content).map_err(Error::from)
249 } else {
250 let local_var_entity: Option<GetGeSellOrderByIdError> =
251 serde_json::from_str(&local_var_content).ok();
252 let local_var_error = ResponseContent {
253 status: local_var_status,
254 content: local_var_content,
255 entity: local_var_entity,
256 };
257 Err(Error::ResponseError(local_var_error))
258 }
259}
260
261pub async fn get_ge_sell_orders(
263 configuration: &configuration::Configuration,
264 params: GetGeSellOrdersParams,
265) -> Result<models::DataPageGeOrderSchema, Error<GetGeSellOrdersError>> {
266 let local_var_configuration = configuration;
267
268 let code = params.code;
270 let seller = params.seller;
272 let page = params.page;
274 let size = params.size;
276
277 let local_var_client = &local_var_configuration.client;
278
279 let local_var_uri_str = format!("{}/grandexchange/orders", local_var_configuration.base_path);
280 let mut local_var_req_builder =
281 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
282
283 if let Some(ref local_var_str) = code {
284 local_var_req_builder =
285 local_var_req_builder.query(&[("code", &local_var_str.to_string())]);
286 }
287 if let Some(ref local_var_str) = seller {
288 local_var_req_builder =
289 local_var_req_builder.query(&[("seller", &local_var_str.to_string())]);
290 }
291 if let Some(ref local_var_str) = page {
292 local_var_req_builder =
293 local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
294 }
295 if let Some(ref local_var_str) = size {
296 local_var_req_builder =
297 local_var_req_builder.query(&[("size", &local_var_str.to_string())]);
298 }
299 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
300 local_var_req_builder =
301 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
302 }
303
304 let local_var_req = local_var_req_builder.build()?;
305 let local_var_resp = local_var_client.execute(local_var_req).await?;
306
307 let local_var_status = local_var_resp.status();
308 let local_var_content = local_var_resp.text().await?;
309
310 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
311 serde_json::from_str(&local_var_content).map_err(Error::from)
312 } else {
313 let local_var_entity: Option<GetGeSellOrdersError> =
314 serde_json::from_str(&local_var_content).ok();
315 let local_var_error = ResponseContent {
316 status: local_var_status,
317 content: local_var_content,
318 entity: local_var_entity,
319 };
320 Err(Error::ResponseError(local_var_error))
321 }
322}