thunderstore_api/apis/v2/
user_media.rs

1////////////////////////////////////////////////////////////////////////////////
2// This Source Code Form is subject to the terms of the Mozilla Public         /
3// License, v. 2.0. If a copy of the MPL was not distributed with this         /
4// file, You can obtain one at https://mozilla.org/MPL/2.0/.                   /
5////////////////////////////////////////////////////////////////////////////////
6
7use 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/// struct for typed errors of method [`experimental_period_usermedia_period_abort_upload`]
15#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(untagged)]
17pub enum AbortUploadError {
18    UnknownValue(serde_json::Value),
19}
20
21/// struct for typed errors of method [`experimental_period_usermedia_period_finish_upload`]
22#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(untagged)]
24pub enum FinishUploadError {
25    UnknownValue(serde_json::Value),
26}
27
28/// struct for typed errors of method [`experimental_period_usermedia_period_initiate_upload`]
29#[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}