metaculus/apis/
question_summaries_api.rs1use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16#[derive(Clone, Debug)]
18pub struct QuestionSummariesFeedbackCreateParams {
19 pub question_summary_feedback: crate::models::QuestionSummaryFeedback,
20}
21
22#[derive(Clone, Debug)]
24pub struct QuestionSummariesRetrieveParams {
25 pub id: String,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum QuestionSummariesFeedbackCreateError {
32 UnknownValue(serde_json::Value),
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum QuestionSummariesRetrieveError {
39 UnknownValue(serde_json::Value),
40}
41
42pub async fn question_summaries_feedback_create(
43 configuration: &configuration::Configuration,
44 params: QuestionSummariesFeedbackCreateParams,
45) -> Result<crate::models::QuestionSummaryFeedback, Error<QuestionSummariesFeedbackCreateError>> {
46 let local_var_configuration = configuration;
47
48 let question_summary_feedback = params.question_summary_feedback;
50
51 let local_var_client = &local_var_configuration.client;
52
53 let local_var_uri_str = format!(
54 "{}/api2/question-summaries/feedback/",
55 local_var_configuration.base_path
56 );
57 let mut local_var_req_builder =
58 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
59
60 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
61 local_var_req_builder =
62 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
63 }
64 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
65 local_var_req_builder = local_var_req_builder
66 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
67 };
68 if let Some(ref local_var_cookie) = local_var_configuration.cookie {
69 local_var_req_builder =
70 local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
71 };
72 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
73 let local_var_key = local_var_apikey.key.clone();
74 let local_var_value = match local_var_apikey.prefix {
75 Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
76 None => local_var_key,
77 };
78 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
79 };
80 local_var_req_builder = local_var_req_builder.json(&question_summary_feedback);
81
82 let local_var_req = local_var_req_builder.build()?;
83 let local_var_resp = local_var_client.execute(local_var_req).await?;
84
85 let local_var_status = local_var_resp.status();
86 let local_var_content = local_var_resp.text().await?;
87
88 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
89 serde_json::from_str(&local_var_content).map_err(Error::from)
90 } else {
91 let local_var_entity: Option<QuestionSummariesFeedbackCreateError> =
92 serde_json::from_str(&local_var_content).ok();
93 let local_var_error = ResponseContent {
94 status: local_var_status,
95 content: local_var_content,
96 entity: local_var_entity,
97 };
98 Err(Error::ResponseError(local_var_error))
99 }
100}
101
102pub async fn question_summaries_retrieve(
104 configuration: &configuration::Configuration,
105 params: QuestionSummariesRetrieveParams,
106) -> Result<crate::models::QuestionSummary, Error<QuestionSummariesRetrieveError>> {
107 let local_var_configuration = configuration;
108
109 let id = params.id;
111
112 let local_var_client = &local_var_configuration.client;
113
114 let local_var_uri_str = format!(
115 "{}/api2/question-summaries/{id}/",
116 local_var_configuration.base_path,
117 id = crate::apis::urlencode(id)
118 );
119 let mut local_var_req_builder =
120 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
121
122 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
123 local_var_req_builder =
124 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
125 }
126 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
127 local_var_req_builder = local_var_req_builder
128 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
129 };
130 if let Some(ref local_var_cookie) = local_var_configuration.cookie {
131 local_var_req_builder =
132 local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
133 };
134 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
135 let local_var_key = local_var_apikey.key.clone();
136 let local_var_value = match local_var_apikey.prefix {
137 Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
138 None => local_var_key,
139 };
140 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
141 };
142
143 let local_var_req = local_var_req_builder.build()?;
144 let local_var_resp = local_var_client.execute(local_var_req).await?;
145
146 let local_var_status = local_var_resp.status();
147 let local_var_content = local_var_resp.text().await?;
148
149 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
150 serde_json::from_str(&local_var_content).map_err(Error::from)
151 } else {
152 let local_var_entity: Option<QuestionSummariesRetrieveError> =
153 serde_json::from_str(&local_var_content).ok();
154 let local_var_error = ResponseContent {
155 status: local_var_status,
156 content: local_var_content,
157 entity: local_var_entity,
158 };
159 Err(Error::ResponseError(local_var_error))
160 }
161}