1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ClassroomSlashGetAClassroomError {
22 Status404(models::BasicError),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum ClassroomSlashGetAnAssignmentError {
30 Status404(models::BasicError),
31 UnknownValue(serde_json::Value),
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum ClassroomSlashGetAssignmentGradesError {
38 Status404(models::BasicError),
39 UnknownValue(serde_json::Value),
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
44#[serde(untagged)]
45pub enum ClassroomSlashListAcceptedAssigmentsForAnAssignmentError {
46 UnknownValue(serde_json::Value),
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(untagged)]
52pub enum ClassroomSlashListAssignmentsForAClassroomError {
53 UnknownValue(serde_json::Value),
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum ClassroomSlashListClassroomsError {
60 UnknownValue(serde_json::Value),
61}
62
63
64pub async fn classroom_slash_get_a_classroom(configuration: &configuration::Configuration, classroom_id: i32) -> Result<models::Classroom, Error<ClassroomSlashGetAClassroomError>> {
66 let local_var_configuration = configuration;
67
68 let local_var_client = &local_var_configuration.client;
69
70 let local_var_uri_str = format!("{}/classrooms/{classroom_id}", local_var_configuration.base_path, classroom_id=classroom_id);
71 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
72
73 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
74 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
75 }
76
77 let local_var_req = local_var_req_builder.build()?;
78 let local_var_resp = local_var_client.execute(local_var_req).await?;
79
80 let local_var_status = local_var_resp.status();
81 let local_var_content = local_var_resp.text().await?;
82
83 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
84 serde_json::from_str(&local_var_content).map_err(Error::from)
85 } else {
86 let local_var_entity: Option<ClassroomSlashGetAClassroomError> = serde_json::from_str(&local_var_content).ok();
87 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
88 Err(Error::ResponseError(local_var_error))
89 }
90}
91
92pub async fn classroom_slash_get_an_assignment(configuration: &configuration::Configuration, assignment_id: i32) -> Result<models::ClassroomAssignment, Error<ClassroomSlashGetAnAssignmentError>> {
94 let local_var_configuration = configuration;
95
96 let local_var_client = &local_var_configuration.client;
97
98 let local_var_uri_str = format!("{}/assignments/{assignment_id}", local_var_configuration.base_path, assignment_id=assignment_id);
99 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
100
101 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
102 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
103 }
104
105 let local_var_req = local_var_req_builder.build()?;
106 let local_var_resp = local_var_client.execute(local_var_req).await?;
107
108 let local_var_status = local_var_resp.status();
109 let local_var_content = local_var_resp.text().await?;
110
111 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
112 serde_json::from_str(&local_var_content).map_err(Error::from)
113 } else {
114 let local_var_entity: Option<ClassroomSlashGetAnAssignmentError> = serde_json::from_str(&local_var_content).ok();
115 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
116 Err(Error::ResponseError(local_var_error))
117 }
118}
119
120pub async fn classroom_slash_get_assignment_grades(configuration: &configuration::Configuration, assignment_id: i32) -> Result<Vec<models::ClassroomAssignmentGrade>, Error<ClassroomSlashGetAssignmentGradesError>> {
122 let local_var_configuration = configuration;
123
124 let local_var_client = &local_var_configuration.client;
125
126 let local_var_uri_str = format!("{}/assignments/{assignment_id}/grades", local_var_configuration.base_path, assignment_id=assignment_id);
127 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
128
129 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
130 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
131 }
132
133 let local_var_req = local_var_req_builder.build()?;
134 let local_var_resp = local_var_client.execute(local_var_req).await?;
135
136 let local_var_status = local_var_resp.status();
137 let local_var_content = local_var_resp.text().await?;
138
139 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
140 serde_json::from_str(&local_var_content).map_err(Error::from)
141 } else {
142 let local_var_entity: Option<ClassroomSlashGetAssignmentGradesError> = serde_json::from_str(&local_var_content).ok();
143 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
144 Err(Error::ResponseError(local_var_error))
145 }
146}
147
148pub async fn classroom_slash_list_accepted_assigments_for_an_assignment(configuration: &configuration::Configuration, assignment_id: i32, page: Option<i32>, per_page: Option<i32>) -> Result<Vec<models::ClassroomAcceptedAssignment>, Error<ClassroomSlashListAcceptedAssigmentsForAnAssignmentError>> {
150 let local_var_configuration = configuration;
151
152 let local_var_client = &local_var_configuration.client;
153
154 let local_var_uri_str = format!("{}/assignments/{assignment_id}/accepted_assignments", local_var_configuration.base_path, assignment_id=assignment_id);
155 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
156
157 if let Some(ref local_var_str) = page {
158 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
159 }
160 if let Some(ref local_var_str) = per_page {
161 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
162 }
163 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
164 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
165 }
166
167 let local_var_req = local_var_req_builder.build()?;
168 let local_var_resp = local_var_client.execute(local_var_req).await?;
169
170 let local_var_status = local_var_resp.status();
171 let local_var_content = local_var_resp.text().await?;
172
173 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
174 serde_json::from_str(&local_var_content).map_err(Error::from)
175 } else {
176 let local_var_entity: Option<ClassroomSlashListAcceptedAssigmentsForAnAssignmentError> = serde_json::from_str(&local_var_content).ok();
177 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
178 Err(Error::ResponseError(local_var_error))
179 }
180}
181
182pub async fn classroom_slash_list_assignments_for_a_classroom(configuration: &configuration::Configuration, classroom_id: i32, page: Option<i32>, per_page: Option<i32>) -> Result<Vec<models::SimpleClassroomAssignment>, Error<ClassroomSlashListAssignmentsForAClassroomError>> {
184 let local_var_configuration = configuration;
185
186 let local_var_client = &local_var_configuration.client;
187
188 let local_var_uri_str = format!("{}/classrooms/{classroom_id}/assignments", local_var_configuration.base_path, classroom_id=classroom_id);
189 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
190
191 if let Some(ref local_var_str) = page {
192 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
193 }
194 if let Some(ref local_var_str) = per_page {
195 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
196 }
197 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
198 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
199 }
200
201 let local_var_req = local_var_req_builder.build()?;
202 let local_var_resp = local_var_client.execute(local_var_req).await?;
203
204 let local_var_status = local_var_resp.status();
205 let local_var_content = local_var_resp.text().await?;
206
207 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
208 serde_json::from_str(&local_var_content).map_err(Error::from)
209 } else {
210 let local_var_entity: Option<ClassroomSlashListAssignmentsForAClassroomError> = serde_json::from_str(&local_var_content).ok();
211 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
212 Err(Error::ResponseError(local_var_error))
213 }
214}
215
216pub async fn classroom_slash_list_classrooms(configuration: &configuration::Configuration, page: Option<i32>, per_page: Option<i32>) -> Result<Vec<models::SimpleClassroom>, Error<ClassroomSlashListClassroomsError>> {
218 let local_var_configuration = configuration;
219
220 let local_var_client = &local_var_configuration.client;
221
222 let local_var_uri_str = format!("{}/classrooms", local_var_configuration.base_path);
223 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
224
225 if let Some(ref local_var_str) = page {
226 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
227 }
228 if let Some(ref local_var_str) = per_page {
229 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
230 }
231 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
232 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
233 }
234
235 let local_var_req = local_var_req_builder.build()?;
236 let local_var_resp = local_var_client.execute(local_var_req).await?;
237
238 let local_var_status = local_var_resp.status();
239 let local_var_content = local_var_resp.text().await?;
240
241 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
242 serde_json::from_str(&local_var_content).map_err(Error::from)
243 } else {
244 let local_var_entity: Option<ClassroomSlashListClassroomsError> = serde_json::from_str(&local_var_content).ok();
245 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
246 Err(Error::ResponseError(local_var_error))
247 }
248}
249