Skip to main content

geoengine_api_client/apis/
projects_api.rs

1/*
2 * Geo Engine API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * Contact: dev@geoengine.de
7 * Generated by: https://openapi-generator.tech
8 */
9
10
11use reqwest;
12use serde::{Deserialize, Serialize, de::Error as _};
13use crate::{apis::ResponseContent, models};
14use super::{Error, configuration, ContentType};
15
16
17/// struct for typed errors of method [`create_project_handler`]
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum CreateProjectHandlerError {
21    UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`delete_project_handler`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum DeleteProjectHandlerError {
28    UnknownValue(serde_json::Value),
29}
30
31/// struct for typed errors of method [`list_projects_handler`]
32#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum ListProjectsHandlerError {
35    UnknownValue(serde_json::Value),
36}
37
38/// struct for typed errors of method [`load_project_latest_handler`]
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum LoadProjectLatestHandlerError {
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`load_project_version_handler`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum LoadProjectVersionHandlerError {
49    UnknownValue(serde_json::Value),
50}
51
52/// struct for typed errors of method [`project_versions_handler`]
53#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum ProjectVersionsHandlerError {
56    UnknownValue(serde_json::Value),
57}
58
59/// struct for typed errors of method [`update_project_handler`]
60#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum UpdateProjectHandlerError {
63    UnknownValue(serde_json::Value),
64}
65
66
67pub async fn create_project_handler(configuration: &configuration::Configuration, create_project: models::CreateProject) -> Result<models::IdResponse, Error<CreateProjectHandlerError>> {
68    // add a prefix to parameters to efficiently prevent name collisions
69    let p_body_create_project = create_project;
70
71    let uri_str = format!("{}/project", configuration.base_path);
72    let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
73
74    if let Some(ref user_agent) = configuration.user_agent {
75        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
76    }
77    if let Some(ref token) = configuration.bearer_access_token {
78        req_builder = req_builder.bearer_auth(token.to_owned());
79    };
80    req_builder = req_builder.json(&p_body_create_project);
81
82    let req = req_builder.build()?;
83    let resp = configuration.client.execute(req).await?;
84
85    let status = resp.status();
86    let content_type = resp
87        .headers()
88        .get("content-type")
89        .and_then(|v| v.to_str().ok())
90        .unwrap_or("application/octet-stream");
91    let content_type = super::ContentType::from(content_type);
92
93    if !status.is_client_error() && !status.is_server_error() {
94        let content = resp.text().await?;
95        match content_type {
96            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
97            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::IdResponse`"))),
98            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::IdResponse`")))),
99        }
100    } else {
101        let content = resp.text().await?;
102        let entity: Option<CreateProjectHandlerError> = serde_json::from_str(&content).ok();
103        Err(Error::ResponseError(ResponseContent { status, content, entity }))
104    }
105}
106
107pub async fn delete_project_handler(configuration: &configuration::Configuration, project: &str) -> Result<(), Error<DeleteProjectHandlerError>> {
108    // add a prefix to parameters to efficiently prevent name collisions
109    let p_path_project = project;
110
111    let uri_str = format!("{}/project/{project}", configuration.base_path, project=crate::apis::urlencode(p_path_project));
112    let mut req_builder = configuration.client.request(reqwest::Method::DELETE, &uri_str);
113
114    if let Some(ref user_agent) = configuration.user_agent {
115        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
116    }
117    if let Some(ref token) = configuration.bearer_access_token {
118        req_builder = req_builder.bearer_auth(token.to_owned());
119    };
120
121    let req = req_builder.build()?;
122    let resp = configuration.client.execute(req).await?;
123
124    let status = resp.status();
125
126    if !status.is_client_error() && !status.is_server_error() {
127        Ok(())
128    } else {
129        let content = resp.text().await?;
130        let entity: Option<DeleteProjectHandlerError> = serde_json::from_str(&content).ok();
131        Err(Error::ResponseError(ResponseContent { status, content, entity }))
132    }
133}
134
135pub async fn list_projects_handler(configuration: &configuration::Configuration, order: models::OrderBy, offset: i32, limit: i32) -> Result<Vec<models::ProjectListing>, Error<ListProjectsHandlerError>> {
136    // add a prefix to parameters to efficiently prevent name collisions
137    let p_path_order = order;
138    let p_path_offset = offset;
139    let p_path_limit = limit;
140
141                    let uri_str = format!(
142                        "{}/projects?order={}&offset={}&limit={}",
143                        configuration.base_path,
144                        p_path_order.to_string(),
145                        p_path_offset,
146                        p_path_limit
147                    );
148                let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
149
150    if let Some(ref user_agent) = configuration.user_agent {
151        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
152    }
153    if let Some(ref token) = configuration.bearer_access_token {
154        req_builder = req_builder.bearer_auth(token.to_owned());
155    };
156
157    let req = req_builder.build()?;
158    let resp = configuration.client.execute(req).await?;
159
160    let status = resp.status();
161    let content_type = resp
162        .headers()
163        .get("content-type")
164        .and_then(|v| v.to_str().ok())
165        .unwrap_or("application/octet-stream");
166    let content_type = super::ContentType::from(content_type);
167
168    if !status.is_client_error() && !status.is_server_error() {
169        let content = resp.text().await?;
170        match content_type {
171            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
172            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `Vec&lt;models::ProjectListing&gt;`"))),
173            ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `Vec&lt;models::ProjectListing&gt;`")))),
174        }
175    } else {
176        let content = resp.text().await?;
177        let entity: Option<ListProjectsHandlerError> = serde_json::from_str(&content).ok();
178        Err(Error::ResponseError(ResponseContent { status, content, entity }))
179    }
180}
181
182pub async fn load_project_latest_handler(configuration: &configuration::Configuration, project: &str) -> Result<models::Project, Error<LoadProjectLatestHandlerError>> {
183    // add a prefix to parameters to efficiently prevent name collisions
184    let p_path_project = project;
185
186    let uri_str = format!("{}/project/{project}", configuration.base_path, project=crate::apis::urlencode(p_path_project));
187    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
188
189    if let Some(ref user_agent) = configuration.user_agent {
190        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
191    }
192    if let Some(ref token) = configuration.bearer_access_token {
193        req_builder = req_builder.bearer_auth(token.to_owned());
194    };
195
196    let req = req_builder.build()?;
197    let resp = configuration.client.execute(req).await?;
198
199    let status = resp.status();
200    let content_type = resp
201        .headers()
202        .get("content-type")
203        .and_then(|v| v.to_str().ok())
204        .unwrap_or("application/octet-stream");
205    let content_type = super::ContentType::from(content_type);
206
207    if !status.is_client_error() && !status.is_server_error() {
208        let content = resp.text().await?;
209        match content_type {
210            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
211            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::Project`"))),
212            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::Project`")))),
213        }
214    } else {
215        let content = resp.text().await?;
216        let entity: Option<LoadProjectLatestHandlerError> = serde_json::from_str(&content).ok();
217        Err(Error::ResponseError(ResponseContent { status, content, entity }))
218    }
219}
220
221pub async fn load_project_version_handler(configuration: &configuration::Configuration, project: &str, version: &str) -> Result<models::Project, Error<LoadProjectVersionHandlerError>> {
222    // add a prefix to parameters to efficiently prevent name collisions
223    let p_path_project = project;
224    let p_path_version = version;
225
226    let uri_str = format!("{}/project/{project}/{version}", configuration.base_path, project=crate::apis::urlencode(p_path_project), version=crate::apis::urlencode(p_path_version));
227    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
228
229    if let Some(ref user_agent) = configuration.user_agent {
230        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
231    }
232    if let Some(ref token) = configuration.bearer_access_token {
233        req_builder = req_builder.bearer_auth(token.to_owned());
234    };
235
236    let req = req_builder.build()?;
237    let resp = configuration.client.execute(req).await?;
238
239    let status = resp.status();
240    let content_type = resp
241        .headers()
242        .get("content-type")
243        .and_then(|v| v.to_str().ok())
244        .unwrap_or("application/octet-stream");
245    let content_type = super::ContentType::from(content_type);
246
247    if !status.is_client_error() && !status.is_server_error() {
248        let content = resp.text().await?;
249        match content_type {
250            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
251            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::Project`"))),
252            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::Project`")))),
253        }
254    } else {
255        let content = resp.text().await?;
256        let entity: Option<LoadProjectVersionHandlerError> = serde_json::from_str(&content).ok();
257        Err(Error::ResponseError(ResponseContent { status, content, entity }))
258    }
259}
260
261pub async fn project_versions_handler(configuration: &configuration::Configuration, project: &str) -> Result<Vec<models::ProjectVersion>, Error<ProjectVersionsHandlerError>> {
262    // add a prefix to parameters to efficiently prevent name collisions
263    let p_path_project = project;
264
265    let uri_str = format!("{}/project/{project}/versions", configuration.base_path, project=crate::apis::urlencode(p_path_project));
266    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
267
268    if let Some(ref user_agent) = configuration.user_agent {
269        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
270    }
271    if let Some(ref token) = configuration.bearer_access_token {
272        req_builder = req_builder.bearer_auth(token.to_owned());
273    };
274
275    let req = req_builder.build()?;
276    let resp = configuration.client.execute(req).await?;
277
278    let status = resp.status();
279    let content_type = resp
280        .headers()
281        .get("content-type")
282        .and_then(|v| v.to_str().ok())
283        .unwrap_or("application/octet-stream");
284    let content_type = super::ContentType::from(content_type);
285
286    if !status.is_client_error() && !status.is_server_error() {
287        let content = resp.text().await?;
288        match content_type {
289            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
290            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `Vec&lt;models::ProjectVersion&gt;`"))),
291            ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `Vec&lt;models::ProjectVersion&gt;`")))),
292        }
293    } else {
294        let content = resp.text().await?;
295        let entity: Option<ProjectVersionsHandlerError> = serde_json::from_str(&content).ok();
296        Err(Error::ResponseError(ResponseContent { status, content, entity }))
297    }
298}
299
300pub async fn update_project_handler(configuration: &configuration::Configuration, project: &str, update_project: models::UpdateProject) -> Result<(), Error<UpdateProjectHandlerError>> {
301    // add a prefix to parameters to efficiently prevent name collisions
302    let p_path_project = project;
303    let p_body_update_project = update_project;
304
305    let uri_str = format!("{}/project/{project}", configuration.base_path, project=crate::apis::urlencode(p_path_project));
306    let mut req_builder = configuration.client.request(reqwest::Method::PATCH, &uri_str);
307
308    if let Some(ref user_agent) = configuration.user_agent {
309        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
310    }
311    if let Some(ref token) = configuration.bearer_access_token {
312        req_builder = req_builder.bearer_auth(token.to_owned());
313    };
314    req_builder = req_builder.json(&p_body_update_project);
315
316    let req = req_builder.build()?;
317    let resp = configuration.client.execute(req).await?;
318
319    let status = resp.status();
320
321    if !status.is_client_error() && !status.is_server_error() {
322        Ok(())
323    } else {
324        let content = resp.text().await?;
325        let entity: Option<UpdateProjectHandlerError> = serde_json::from_str(&content).ok();
326        Err(Error::ResponseError(ResponseContent { status, content, entity }))
327    }
328}
329