thunderstore_api/apis/v2/
submission.rs1use 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#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(untagged)]
17pub enum PackageSubmissionError {
18 UnknownValue(serde_json::Value),
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(untagged)]
24pub enum ValidateIconError {
25 UnknownValue(serde_json::Value),
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum ValidateV1ManifestError {
32 UnknownValue(serde_json::Value),
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum ValidateReadmeError {
39 UnknownValue(serde_json::Value),
40}
41
42pub 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
88pub 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
134pub 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
180pub 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#[derive(Debug, Clone, Serialize, Deserialize)]
228#[serde(untagged)]
229pub enum UploadPackageError {
230 UnknownValue(serde_json::Value),
231}
232
233pub 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}