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