1use super::{configuration, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{Deserialize, Serialize};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum ScoreCreateError {
20 Status400(serde_json::Value),
21 Status401(serde_json::Value),
22 Status403(serde_json::Value),
23 Status404(serde_json::Value),
24 Status405(serde_json::Value),
25 UnknownValue(serde_json::Value),
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum ScoreDeleteError {
32 Status400(serde_json::Value),
33 Status401(serde_json::Value),
34 Status403(serde_json::Value),
35 Status404(serde_json::Value),
36 Status405(serde_json::Value),
37 UnknownValue(serde_json::Value),
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum ScoreGetError {
44 Status400(serde_json::Value),
45 Status401(serde_json::Value),
46 Status403(serde_json::Value),
47 Status404(serde_json::Value),
48 Status405(serde_json::Value),
49 UnknownValue(serde_json::Value),
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum ScoreGetByIdError {
56 Status400(serde_json::Value),
57 Status401(serde_json::Value),
58 Status403(serde_json::Value),
59 Status404(serde_json::Value),
60 Status405(serde_json::Value),
61 UnknownValue(serde_json::Value),
62}
63
64pub async fn score_create(
66 configuration: &configuration::Configuration,
67 create_score_request: models::CreateScoreRequest,
68) -> Result<models::CreateScoreResponse, Error<ScoreCreateError>> {
69 let p_create_score_request = create_score_request;
71
72 let uri_str = format!("{}/api/public/scores", configuration.base_path);
73 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
74
75 if let Some(ref user_agent) = configuration.user_agent {
76 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
77 }
78 if let Some(ref auth_conf) = configuration.basic_auth {
79 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
80 };
81 req_builder = req_builder.json(&p_create_score_request);
82
83 let req = req_builder.build()?;
84 let resp = configuration.client.execute(req).await?;
85
86 let status = resp.status();
87
88 if !status.is_client_error() && !status.is_server_error() {
89 let content = resp.text().await?;
90 serde_json::from_str(&content).map_err(Error::from)
91 } else {
92 let content = resp.text().await?;
93 let entity: Option<ScoreCreateError> = serde_json::from_str(&content).ok();
94 Err(Error::ResponseError(ResponseContent { status, content, entity }))
95 }
96}
97
98pub async fn score_delete(configuration: &configuration::Configuration, score_id: &str) -> Result<(), Error<ScoreDeleteError>> {
100 let p_score_id = score_id;
102
103 let uri_str = format!(
104 "{}/api/public/scores/{scoreId}",
105 configuration.base_path,
106 scoreId = crate::apis::urlencode(p_score_id)
107 );
108 let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
109
110 if let Some(ref user_agent) = configuration.user_agent {
111 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
112 }
113 if let Some(ref auth_conf) = configuration.basic_auth {
114 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
115 };
116
117 let req = req_builder.build()?;
118 let resp = configuration.client.execute(req).await?;
119
120 let status = resp.status();
121
122 if !status.is_client_error() && !status.is_server_error() {
123 Ok(())
124 } else {
125 let content = resp.text().await?;
126 let entity: Option<ScoreDeleteError> = serde_json::from_str(&content).ok();
127 Err(Error::ResponseError(ResponseContent { status, content, entity }))
128 }
129}
130
131pub async fn score_get(
133 configuration: &configuration::Configuration,
134 page: Option<i32>,
135 limit: Option<i32>,
136 user_id: Option<&str>,
137 name: Option<&str>,
138 from_timestamp: Option<String>,
139 to_timestamp: Option<String>,
140 source: Option<models::ScoreSource>,
141 operator: Option<&str>,
142 value: Option<f64>,
143 score_ids: Option<&str>,
144 config_id: Option<&str>,
145 queue_id: Option<&str>,
146 data_type: Option<models::ScoreDataType>,
147 trace_tags: Option<Vec<String>>,
148) -> Result<models::GetScoresResponse, Error<ScoreGetError>> {
149 let p_page = page;
151 let p_limit = limit;
152 let p_user_id = user_id;
153 let p_name = name;
154 let p_from_timestamp = from_timestamp;
155 let p_to_timestamp = to_timestamp;
156 let p_source = source;
157 let p_operator = operator;
158 let p_value = value;
159 let p_score_ids = score_ids;
160 let p_config_id = config_id;
161 let p_queue_id = queue_id;
162 let p_data_type = data_type;
163 let p_trace_tags = trace_tags;
164
165 let uri_str = format!("{}/api/public/scores", configuration.base_path);
166 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
167
168 if let Some(ref param_value) = p_page {
169 req_builder = req_builder.query(&[("page", ¶m_value.to_string())]);
170 }
171 if let Some(ref param_value) = p_limit {
172 req_builder = req_builder.query(&[("limit", ¶m_value.to_string())]);
173 }
174 if let Some(ref param_value) = p_user_id {
175 req_builder = req_builder.query(&[("userId", ¶m_value.to_string())]);
176 }
177 if let Some(ref param_value) = p_name {
178 req_builder = req_builder.query(&[("name", ¶m_value.to_string())]);
179 }
180 if let Some(ref param_value) = p_from_timestamp {
181 req_builder = req_builder.query(&[("fromTimestamp", ¶m_value.to_string())]);
182 }
183 if let Some(ref param_value) = p_to_timestamp {
184 req_builder = req_builder.query(&[("toTimestamp", ¶m_value.to_string())]);
185 }
186 if let Some(ref param_value) = p_source {
187 req_builder = req_builder.query(&[("source", ¶m_value.to_string())]);
188 }
189 if let Some(ref param_value) = p_operator {
190 req_builder = req_builder.query(&[("operator", ¶m_value.to_string())]);
191 }
192 if let Some(ref param_value) = p_value {
193 req_builder = req_builder.query(&[("value", ¶m_value.to_string())]);
194 }
195 if let Some(ref param_value) = p_score_ids {
196 req_builder = req_builder.query(&[("scoreIds", ¶m_value.to_string())]);
197 }
198 if let Some(ref param_value) = p_config_id {
199 req_builder = req_builder.query(&[("configId", ¶m_value.to_string())]);
200 }
201 if let Some(ref param_value) = p_queue_id {
202 req_builder = req_builder.query(&[("queueId", ¶m_value.to_string())]);
203 }
204 if let Some(ref param_value) = p_data_type {
205 req_builder = req_builder.query(&[("dataType", ¶m_value.to_string())]);
206 }
207 if let Some(ref param_value) = p_trace_tags {
208 req_builder = match "multi" {
209 "multi" => req_builder.query(
210 ¶m_value
211 .iter()
212 .map(|p| ("traceTags".to_owned(), p.to_string()))
213 .collect::<Vec<(std::string::String, std::string::String)>>(),
214 ),
215 _ => req_builder.query(&[(
216 "traceTags",
217 ¶m_value.iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string(),
218 )]),
219 };
220 }
221 if let Some(ref user_agent) = configuration.user_agent {
222 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
223 }
224 if let Some(ref auth_conf) = configuration.basic_auth {
225 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
226 };
227
228 let req = req_builder.build()?;
229 let resp = configuration.client.execute(req).await?;
230
231 let status = resp.status();
232
233 if !status.is_client_error() && !status.is_server_error() {
234 let content = resp.text().await?;
235 serde_json::from_str(&content).map_err(Error::from)
236 } else {
237 let content = resp.text().await?;
238 let entity: Option<ScoreGetError> = serde_json::from_str(&content).ok();
239 Err(Error::ResponseError(ResponseContent { status, content, entity }))
240 }
241}
242
243pub async fn score_get_by_id(configuration: &configuration::Configuration, score_id: &str) -> Result<models::Score, Error<ScoreGetByIdError>> {
245 let p_score_id = score_id;
247
248 let uri_str = format!(
249 "{}/api/public/scores/{scoreId}",
250 configuration.base_path,
251 scoreId = crate::apis::urlencode(p_score_id)
252 );
253 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
254
255 if let Some(ref user_agent) = configuration.user_agent {
256 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
257 }
258 if let Some(ref auth_conf) = configuration.basic_auth {
259 req_builder = req_builder.basic_auth(auth_conf.0.to_owned(), auth_conf.1.to_owned());
260 };
261
262 let req = req_builder.build()?;
263 let resp = configuration.client.execute(req).await?;
264
265 let status = resp.status();
266
267 if !status.is_client_error() && !status.is_server_error() {
268 let content = resp.text().await?;
269 serde_json::from_str(&content).map_err(Error::from)
270 } else {
271 let content = resp.text().await?;
272 let entity: Option<ScoreGetByIdError> = serde_json::from_str(&content).ok();
273 Err(Error::ResponseError(ResponseContent { status, content, entity }))
274 }
275}