thunderstore_api/apis/v2/
user_media.rs1use crate::apis::configuration::Configuration;
8use crate::apis::{urlencode, Error, ResponseContent};
9
10use crate::models::v2::user_media::{
11 FinishUploadParams, InitiateUploadParams, InitiateUploadResponse, UserMedia,
12};
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(untagged)]
17pub enum AbortUploadError {
18 UnknownValue(serde_json::Value),
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(untagged)]
24pub enum FinishUploadError {
25 UnknownValue(serde_json::Value),
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum InitiateUploadError {
32 UnknownValue(serde_json::Value),
33}
34
35pub async fn abort_upload(
36 configuration: &Configuration,
37 uuid: &str,
38) -> Result<UserMedia, Error<AbortUploadError>> {
39 let local_var_configuration = configuration;
40
41 let local_var_client = &local_var_configuration.client;
42
43 let local_var_uri_str = format!(
44 "{}/api/experimental/usermedia/{uuid}/abort-upload/",
45 local_var_configuration.base_path,
46 uuid = urlencode(uuid)
47 );
48 let mut local_var_req_builder =
49 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
50
51 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
52 local_var_req_builder =
53 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
54 }
55 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
56 local_var_req_builder = local_var_req_builder
57 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
58 };
59
60 let local_var_req = local_var_req_builder.build()?;
61 let local_var_resp = local_var_client.execute(local_var_req).await?;
62
63 let local_var_status = local_var_resp.status();
64 let local_var_content = local_var_resp.text().await?;
65
66 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
67 serde_json::from_str(&local_var_content).map_err(Error::from)
68 } else {
69 let local_var_entity: Option<AbortUploadError> =
70 serde_json::from_str(&local_var_content).ok();
71 let local_var_error = ResponseContent {
72 status: local_var_status,
73 content: local_var_content,
74 entity: local_var_entity,
75 };
76 Err(Error::ResponseError(local_var_error))
77 }
78}
79
80pub async fn finish_upload(
81 configuration: &Configuration,
82 uuid: &str,
83 data: FinishUploadParams,
84) -> Result<UserMedia, Error<FinishUploadError>> {
85 let local_var_configuration = configuration;
86
87 let local_var_client = &local_var_configuration.client;
88
89 let local_var_uri_str = format!(
90 "{}/api/experimental/usermedia/{uuid}/finish-upload/",
91 local_var_configuration.base_path,
92 uuid = urlencode(uuid)
93 );
94 let mut local_var_req_builder =
95 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
96
97 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
98 local_var_req_builder =
99 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
100 }
101 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
102 local_var_req_builder = local_var_req_builder
103 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
104 };
105 local_var_req_builder = local_var_req_builder.json(&data);
106
107 let local_var_req = local_var_req_builder.build()?;
108 let local_var_resp = local_var_client.execute(local_var_req).await?;
109
110 let local_var_status = local_var_resp.status();
111 let local_var_content = local_var_resp.text().await?;
112
113 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
114 serde_json::from_str(&local_var_content).map_err(Error::from)
115 } else {
116 let local_var_entity: Option<FinishUploadError> =
117 serde_json::from_str(&local_var_content).ok();
118 let local_var_error = ResponseContent {
119 status: local_var_status,
120 content: local_var_content,
121 entity: local_var_entity,
122 };
123 Err(Error::ResponseError(local_var_error))
124 }
125}
126
127pub async fn initiate_upload(
128 configuration: &Configuration,
129 data: InitiateUploadParams,
130) -> Result<InitiateUploadResponse, Error<InitiateUploadError>> {
131 let local_var_configuration = configuration;
132
133 let local_var_client = &local_var_configuration.client;
134
135 let local_var_uri_str = format!(
136 "{}/api/experimental/usermedia/initiate-upload/",
137 local_var_configuration.base_path
138 );
139 let mut local_var_req_builder =
140 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
141
142 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
143 local_var_req_builder =
144 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
145 }
146 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
147 local_var_req_builder = local_var_req_builder
148 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
149 };
150 local_var_req_builder = local_var_req_builder.json(&data);
151
152 let local_var_req = local_var_req_builder.build()?;
153 let local_var_resp = local_var_client.execute(local_var_req).await?;
154
155 let local_var_status = local_var_resp.status();
156 let local_var_content = local_var_resp.text().await?;
157
158 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
159 serde_json::from_str(&local_var_content).map_err(Error::from)
160 } else {
161 let local_var_entity: Option<InitiateUploadError> =
162 serde_json::from_str(&local_var_content).ok();
163 let local_var_error = ResponseContent {
164 status: local_var_status,
165 content: local_var_content,
166 entity: local_var_entity,
167 };
168 Err(Error::ResponseError(local_var_error))
169 }
170}