thunderstore_api/apis/v2/
submission.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::{Error, ResponseContent};
9use crate::models::v2::submission::{
10    IconValidatorParams, ManifestV1ValidatorParams, PackageSubmissionMetadata,
11    PackageSubmissionResult, ReadmeValidatorParams, ValidatorResponse,
12};
13
14/// struct for typed errors of method [`experimental_period_package_period_submit`]
15#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(untagged)]
17pub enum PackageSubmissionError {
18    UnknownValue(serde_json::Value),
19}
20
21/// struct for typed errors of method [`experimental_period_submission_period_validate_period_icon`]
22#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(untagged)]
24pub enum ValidateIconError {
25    UnknownValue(serde_json::Value),
26}
27
28/// struct for typed errors of method [`experimental_period_submission_period_validate_period_manifest_v1`]
29#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum ValidateV1ManifestError {
32    UnknownValue(serde_json::Value),
33}
34
35/// struct for typed errors of method [`experimental_period_submission_period_validate_period_readme`]
36#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum ValidateReadmeError {
39    UnknownValue(serde_json::Value),
40}
41
42/// Submits a pre-uploaded package by upload uuid.
43pub async fn submit_package(
44    configuration: &Configuration,
45    data: PackageSubmissionMetadata,
46) -> Result<PackageSubmissionResult, Error<PackageSubmissionError>> {
47    let local_var_configuration = configuration;
48
49    let local_var_client = &local_var_configuration.client;
50
51    let local_var_uri_str = format!(
52        "{}/api/experimental/submission/submit/",
53        local_var_configuration.base_path
54    );
55    let mut local_var_req_builder =
56        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
57
58    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
59        local_var_req_builder =
60            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
61    }
62    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
63        local_var_req_builder = local_var_req_builder
64            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
65    };
66    local_var_req_builder = local_var_req_builder.json(&data);
67
68    let local_var_req = local_var_req_builder.build()?;
69    let local_var_resp = local_var_client.execute(local_var_req).await?;
70
71    let local_var_status = local_var_resp.status();
72    let local_var_content = local_var_resp.text().await?;
73
74    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
75        serde_json::from_str(&local_var_content).map_err(Error::from)
76    } else {
77        let local_var_entity: Option<PackageSubmissionError> =
78            serde_json::from_str(&local_var_content).ok();
79        let local_var_error = ResponseContent {
80            status: local_var_status,
81            content: local_var_content,
82            entity: local_var_entity,
83        };
84        Err(Error::ResponseError(local_var_error))
85    }
86}
87
88/// Validates a package icon.
89pub async fn validate_icon(
90    configuration: &Configuration,
91    data: IconValidatorParams,
92) -> Result<ValidatorResponse, Error<ValidateIconError>> {
93    let local_var_configuration = configuration;
94
95    let local_var_client = &local_var_configuration.client;
96
97    let local_var_uri_str = format!(
98        "{}/api/experimental/submission/validate/icon/",
99        local_var_configuration.base_path
100    );
101    let mut local_var_req_builder =
102        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
103
104    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
105        local_var_req_builder =
106            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
107    }
108    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
109        local_var_req_builder = local_var_req_builder
110            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
111    };
112    local_var_req_builder = local_var_req_builder.json(&data);
113
114    let local_var_req = local_var_req_builder.build()?;
115    let local_var_resp = local_var_client.execute(local_var_req).await?;
116
117    let local_var_status = local_var_resp.status();
118    let local_var_content = local_var_resp.text().await?;
119
120    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
121        serde_json::from_str(&local_var_content).map_err(Error::from)
122    } else {
123        let local_var_entity: Option<ValidateIconError> =
124            serde_json::from_str(&local_var_content).ok();
125        let local_var_error = ResponseContent {
126            status: local_var_status,
127            content: local_var_content,
128            entity: local_var_entity,
129        };
130        Err(Error::ResponseError(local_var_error))
131    }
132}
133
134/// Validates a package manifest.
135pub async fn validate_v1_manifest(
136    configuration: &Configuration,
137    data: ManifestV1ValidatorParams,
138) -> Result<ValidatorResponse, Error<ValidateV1ManifestError>> {
139    let local_var_configuration = configuration;
140
141    let local_var_client = &local_var_configuration.client;
142
143    let local_var_uri_str = format!(
144        "{}/api/experimental/submission/validate/manifest-v1/",
145        local_var_configuration.base_path
146    );
147    let mut local_var_req_builder =
148        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
149
150    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
151        local_var_req_builder =
152            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
153    }
154    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
155        local_var_req_builder = local_var_req_builder
156            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
157    };
158    local_var_req_builder = local_var_req_builder.json(&data);
159
160    let local_var_req = local_var_req_builder.build()?;
161    let local_var_resp = local_var_client.execute(local_var_req).await?;
162
163    let local_var_status = local_var_resp.status();
164    let local_var_content = local_var_resp.text().await?;
165
166    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
167        serde_json::from_str(&local_var_content).map_err(Error::from)
168    } else {
169        let local_var_entity: Option<ValidateV1ManifestError> =
170            serde_json::from_str(&local_var_content).ok();
171        let local_var_error = ResponseContent {
172            status: local_var_status,
173            content: local_var_content,
174            entity: local_var_entity,
175        };
176        Err(Error::ResponseError(local_var_error))
177    }
178}
179
180/// Validates a package readme.
181pub async fn validate_package_readme(
182    configuration: &Configuration,
183    data: ReadmeValidatorParams,
184) -> Result<ValidatorResponse, Error<ValidateReadmeError>> {
185    let local_var_configuration = configuration;
186
187    let local_var_client = &local_var_configuration.client;
188
189    let local_var_uri_str = format!(
190        "{}/api/experimental/submission/validate/readme/",
191        local_var_configuration.base_path
192    );
193    let mut local_var_req_builder =
194        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
195
196    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
197        local_var_req_builder =
198            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
199    }
200    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
201        local_var_req_builder = local_var_req_builder
202            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
203    };
204    local_var_req_builder = local_var_req_builder.json(&data);
205
206    let local_var_req = local_var_req_builder.build()?;
207    let local_var_resp = local_var_client.execute(local_var_req).await?;
208
209    let local_var_status = local_var_resp.status();
210    let local_var_content = local_var_resp.text().await?;
211
212    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
213        serde_json::from_str(&local_var_content).map_err(Error::from)
214    } else {
215        let local_var_entity: Option<ValidateReadmeError> =
216            serde_json::from_str(&local_var_content).ok();
217        let local_var_error = ResponseContent {
218            status: local_var_status,
219            content: local_var_content,
220            entity: local_var_entity,
221        };
222        Err(Error::ResponseError(local_var_error))
223    }
224}
225
226/// struct for typed errors of method [`api_experimental_submission_upload_create`]
227#[derive(Debug, Clone, Serialize, Deserialize)]
228#[serde(untagged)]
229pub enum UploadPackageError {
230    UnknownValue(serde_json::Value),
231}
232
233/// Uploads a package. Requires multipart/form-data.
234pub async fn upload_package(
235    configuration: &Configuration,
236) -> Result<(), Error<UploadPackageError>> {
237    let local_var_configuration = configuration;
238
239    let local_var_client = &local_var_configuration.client;
240
241    let local_var_uri_str = format!(
242        "{}/api/experimental/submission/upload/",
243        local_var_configuration.base_path
244    );
245    let mut local_var_req_builder =
246        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
247
248    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
249        local_var_req_builder =
250            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
251    }
252    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
253        local_var_req_builder = local_var_req_builder
254            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
255    };
256
257    let local_var_req = local_var_req_builder.build()?;
258    let local_var_resp = local_var_client.execute(local_var_req).await?;
259
260    let local_var_status = local_var_resp.status();
261    let local_var_content = local_var_resp.text().await?;
262
263    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
264        Ok(())
265    } else {
266        let local_var_entity: Option<UploadPackageError> =
267            serde_json::from_str(&local_var_content).ok();
268        let local_var_error = ResponseContent {
269            status: local_var_status,
270            content: local_var_content,
271            entity: local_var_entity,
272        };
273        Err(Error::ResponseError(local_var_error))
274    }
275}