mattermost_rust_client/apis/
uploads_api.rs1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CreateUploadError {
22 Status400(crate::models::AppError),
23 Status401(crate::models::AppError),
24 Status403(crate::models::AppError),
25 Status413(crate::models::AppError),
26 Status501(crate::models::AppError),
27 UnknownValue(serde_json::Value),
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum GetUploadError {
34 Status400(crate::models::AppError),
35 Status401(crate::models::AppError),
36 Status403(crate::models::AppError),
37 Status404(crate::models::AppError),
38 Status501(crate::models::AppError),
39 UnknownValue(serde_json::Value),
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
44#[serde(untagged)]
45pub enum UploadDataError {
46 Status400(crate::models::AppError),
47 Status401(crate::models::AppError),
48 Status403(crate::models::AppError),
49 Status413(crate::models::AppError),
50 Status501(crate::models::AppError),
51 UnknownValue(serde_json::Value),
52}
53
54
55pub async fn create_upload(configuration: &configuration::Configuration, create_upload_request: crate::models::CreateUploadRequest) -> Result<crate::models::UploadSession, Error<CreateUploadError>> {
57 let local_var_configuration = configuration;
58
59 let local_var_client = &local_var_configuration.client;
60
61 let local_var_uri_str = format!("{}/uploads", local_var_configuration.base_path);
62 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
63
64 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
65 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
66 }
67 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
68 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
69 };
70 local_var_req_builder = local_var_req_builder.json(&create_upload_request);
71
72 let local_var_req = local_var_req_builder.build()?;
73 let local_var_resp = local_var_client.execute(local_var_req).await?;
74
75 let local_var_status = local_var_resp.status();
76 let local_var_content = local_var_resp.text().await?;
77
78 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
79 serde_json::from_str(&local_var_content).map_err(Error::from)
80 } else {
81 let local_var_entity: Option<CreateUploadError> = serde_json::from_str(&local_var_content).ok();
82 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
83 Err(Error::ResponseError(local_var_error))
84 }
85}
86
87pub async fn get_upload(configuration: &configuration::Configuration, upload_id: &str) -> Result<(), Error<GetUploadError>> {
89 let local_var_configuration = configuration;
90
91 let local_var_client = &local_var_configuration.client;
92
93 let local_var_uri_str = format!("{}/uploads/{upload_id}", local_var_configuration.base_path, upload_id=crate::apis::urlencode(upload_id));
94 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
95
96 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
97 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
98 }
99 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
100 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
101 };
102
103 let local_var_req = local_var_req_builder.build()?;
104 let local_var_resp = local_var_client.execute(local_var_req).await?;
105
106 let local_var_status = local_var_resp.status();
107 let local_var_content = local_var_resp.text().await?;
108
109 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
110 Ok(())
111 } else {
112 let local_var_entity: Option<GetUploadError> = serde_json::from_str(&local_var_content).ok();
113 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
114 Err(Error::ResponseError(local_var_error))
115 }
116}
117
118pub async fn upload_data(configuration: &configuration::Configuration, upload_id: &str) -> Result<crate::models::FileInfo, Error<UploadDataError>> {
120 let local_var_configuration = configuration;
121
122 let local_var_client = &local_var_configuration.client;
123
124 let local_var_uri_str = format!("{}/uploads/{upload_id}", local_var_configuration.base_path, upload_id=crate::apis::urlencode(upload_id));
125 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
126
127 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
128 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
129 }
130 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
131 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
132 };
133
134 let local_var_req = local_var_req_builder.build()?;
135 let local_var_resp = local_var_client.execute(local_var_req).await?;
136
137 let local_var_status = local_var_resp.status();
138 let local_var_content = local_var_resp.text().await?;
139
140 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141 serde_json::from_str(&local_var_content).map_err(Error::from)
142 } else {
143 let local_var_entity: Option<UploadDataError> = serde_json::from_str(&local_var_content).ok();
144 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
145 Err(Error::ResponseError(local_var_error))
146 }
147}
148