thunderstore_api/apis/v2/
package.rs1use crate::apis::configuration::Configuration;
8use crate::apis::{urlencode, Error, ResponseContent};
9
10use crate::models::v2::package;
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
14#[serde(untagged)]
15pub enum ReadError {
16 UnknownValue(serde_json::Value),
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
21#[serde(untagged)]
22pub enum VersionReadError {
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum ListError {
30 UnknownValue(serde_json::Value),
31}
32
33pub async fn read(
35 configuration: &Configuration,
36 name: &str,
37 namespace: &str,
38) -> Result<package::Package, Error<ReadError>> {
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/package/{namespace}/{name}/",
45 local_var_configuration.base_path,
46 name = urlencode(name),
47 namespace = urlencode(namespace)
48 );
49 let mut local_var_req_builder =
50 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
51
52 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
53 local_var_req_builder =
54 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
55 }
56 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
57 local_var_req_builder = local_var_req_builder
58 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
59 };
60
61 let local_var_req = local_var_req_builder.build()?;
62 let local_var_resp = local_var_client.execute(local_var_req).await?;
63
64 let local_var_status = local_var_resp.status();
65 let local_var_content = local_var_resp.text().await?;
66
67 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
68 serde_json::from_str(&local_var_content).map_err(Error::from)
69 } else {
70 let local_var_entity: Option<ReadError> = 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 read_version(
82 configuration: &Configuration,
83 name: &str,
84 namespace: &str,
85 version: &str,
86) -> Result<package::Version, Error<VersionReadError>> {
87 let local_var_configuration = configuration;
88
89 let local_var_client = &local_var_configuration.client;
90
91 let local_var_uri_str = format!(
92 "{}/api/experimental/package/{namespace}/{name}/{version}/",
93 local_var_configuration.base_path,
94 name = urlencode(name),
95 namespace = urlencode(namespace),
96 version = urlencode(version)
97 );
98 let mut local_var_req_builder =
99 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
100
101 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
102 local_var_req_builder =
103 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
104 }
105 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
106 local_var_req_builder = local_var_req_builder
107 .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
108 };
109
110 let local_var_req = local_var_req_builder.build()?;
111 let local_var_resp = local_var_client.execute(local_var_req).await?;
112
113 let local_var_status = local_var_resp.status();
114 let local_var_content = local_var_resp.text().await?;
115
116 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
117 serde_json::from_str(&local_var_content).map_err(Error::from)
118 } else {
119 let local_var_entity: Option<VersionReadError> =
120 serde_json::from_str(&local_var_content).ok();
121 let local_var_error = ResponseContent {
122 status: local_var_status,
123 content: local_var_content,
124 entity: local_var_entity,
125 };
126 Err(Error::ResponseError(local_var_error))
127 }
128}
129
130pub async fn list(
132 configuration: &Configuration,
133 cursor: Option<&str>,
134) -> Result<package::ListResponse, Error<ListError>> {
135 let local_var_configuration = configuration;
136
137 let local_var_client = &local_var_configuration.client;
138
139 let local_var_uri_str = format!(
140 "{}/api/experimental/package/",
141 local_var_configuration.base_path
142 );
143 let mut local_var_req_builder =
144 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
145
146 if let Some(local_var_str) = cursor {
147 local_var_req_builder =
148 local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
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
159 let local_var_req = local_var_req_builder.build()?;
160 let local_var_resp = local_var_client.execute(local_var_req).await?;
161
162 let local_var_status = local_var_resp.status();
163 let local_var_content = local_var_resp.text().await?;
164
165 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
166 serde_json::from_str(&local_var_content).map_err(Error::from)
167 } else {
168 let local_var_entity: Option<ListError> = serde_json::from_str(&local_var_content).ok();
169 let local_var_error = ResponseContent {
170 status: local_var_status,
171 content: local_var_content,
172 entity: local_var_entity,
173 };
174 Err(Error::ResponseError(local_var_error))
175 }
176}