camunda_client/apis/
task_attachment_api.rs

1/*
2 * Camunda BPM REST API
3 *
4 * OpenApi Spec for Camunda BPM REST API.
5 *
6 * The version of the OpenAPI document: 7.13.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use std::rc::Rc;
12use std::borrow::Borrow;
13#[allow(unused_imports)]
14use std::option::Option;
15
16use reqwest;
17
18use super::{Error, configuration};
19
20pub struct TaskAttachmentApiClient {
21    configuration: Rc<configuration::Configuration>,
22}
23
24impl TaskAttachmentApiClient {
25    pub fn new(configuration: Rc<configuration::Configuration>) -> TaskAttachmentApiClient {
26        TaskAttachmentApiClient {
27            configuration,
28        }
29    }
30}
31
32pub trait TaskAttachmentApi {
33    fn add_attachment(&self, id: &str, attachment_name: Option<&str>, attachment_description: Option<&str>, attachment_type: Option<&str>, url: Option<&str>, content: Option<std::path::PathBuf>) -> Result<crate::models::AttachmentDto, Error>;
34    fn delete_attachment(&self, id: &str, attachment_id: &str) -> Result<(), Error>;
35    fn get_attachment(&self, id: &str, attachment_id: &str) -> Result<crate::models::AttachmentDto, Error>;
36    fn get_attachment_data(&self, id: &str, attachment_id: &str) -> Result<std::path::PathBuf, Error>;
37    fn get_attachments(&self, id: &str) -> Result<Vec<crate::models::AttachmentDto>, Error>;
38}
39
40impl TaskAttachmentApi for TaskAttachmentApiClient {
41    fn add_attachment(&self, id: &str, attachment_name: Option<&str>, attachment_description: Option<&str>, attachment_type: Option<&str>, url: Option<&str>, content: Option<std::path::PathBuf>) -> Result<crate::models::AttachmentDto, Error> {
42        let configuration: &configuration::Configuration = self.configuration.borrow();
43        let client = &configuration.client;
44
45        let uri_str = format!("{}/task/{id}/attachment/create", configuration.base_path, id=crate::apis::urlencode(id));
46        let mut req_builder = client.post(uri_str.as_str());
47
48        if let Some(ref user_agent) = configuration.user_agent {
49            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
50        }
51        let mut form = reqwest::multipart::Form::new();
52        if let Some(param_value) = attachment_name {
53            form = form.text("attachment-name", param_value.to_string());
54        }
55        if let Some(param_value) = attachment_description {
56            form = form.text("attachment-description", param_value.to_string());
57        }
58        if let Some(param_value) = attachment_type {
59            form = form.text("attachment-type", param_value.to_string());
60        }
61        if let Some(param_value) = url {
62            form = form.text("url", param_value.to_string());
63        }
64        if let Some(param_value) = content {
65            form = form.file("content", param_value)?;
66        }
67        req_builder = req_builder.multipart(form);
68
69        // send request
70        let req = req_builder.build()?;
71
72        Ok(client.execute(req)?.error_for_status()?.json()?)
73    }
74
75    fn delete_attachment(&self, id: &str, attachment_id: &str) -> Result<(), Error> {
76        let configuration: &configuration::Configuration = self.configuration.borrow();
77        let client = &configuration.client;
78
79        let uri_str = format!("{}/task/{id}/attachment/{attachmentId}", configuration.base_path, id=crate::apis::urlencode(id), attachmentId=crate::apis::urlencode(attachment_id));
80        let mut req_builder = client.delete(uri_str.as_str());
81
82        if let Some(ref user_agent) = configuration.user_agent {
83            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
84        }
85
86        // send request
87        let req = req_builder.build()?;
88
89        client.execute(req)?.error_for_status()?;
90        Ok(())
91    }
92
93    fn get_attachment(&self, id: &str, attachment_id: &str) -> Result<crate::models::AttachmentDto, Error> {
94        let configuration: &configuration::Configuration = self.configuration.borrow();
95        let client = &configuration.client;
96
97        let uri_str = format!("{}/task/{id}/attachment/{attachmentId}", configuration.base_path, id=crate::apis::urlencode(id), attachmentId=crate::apis::urlencode(attachment_id));
98        let mut req_builder = client.get(uri_str.as_str());
99
100        if let Some(ref user_agent) = configuration.user_agent {
101            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
102        }
103
104        // send request
105        let req = req_builder.build()?;
106
107        Ok(client.execute(req)?.error_for_status()?.json()?)
108    }
109
110    fn get_attachment_data(&self, id: &str, attachment_id: &str) -> Result<std::path::PathBuf, Error> {
111        let configuration: &configuration::Configuration = self.configuration.borrow();
112        let client = &configuration.client;
113
114        let uri_str = format!("{}/task/{id}/attachment/{attachmentId}/data", configuration.base_path, id=crate::apis::urlencode(id), attachmentId=crate::apis::urlencode(attachment_id));
115        let mut req_builder = client.get(uri_str.as_str());
116
117        if let Some(ref user_agent) = configuration.user_agent {
118            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
119        }
120
121        // send request
122        let req = req_builder.build()?;
123
124        Ok(client.execute(req)?.error_for_status()?.json()?)
125    }
126
127    fn get_attachments(&self, id: &str) -> Result<Vec<crate::models::AttachmentDto>, Error> {
128        let configuration: &configuration::Configuration = self.configuration.borrow();
129        let client = &configuration.client;
130
131        let uri_str = format!("{}/task/{id}/attachment", configuration.base_path, id=crate::apis::urlencode(id));
132        let mut req_builder = client.get(uri_str.as_str());
133
134        if let Some(ref user_agent) = configuration.user_agent {
135            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
136        }
137
138        // send request
139        let req = req_builder.build()?;
140
141        Ok(client.execute(req)?.error_for_status()?.json()?)
142    }
143
144}