1use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum GetPublicUserIconError {
20 Status404(),
21 UnknownValue(serde_json::Value),
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum GetServerVersionError {
28 UnknownValue(serde_json::Value),
29}
30
31pub async fn get_public_user_icon(
33 configuration: &configuration::Configuration,
34 username: &str,
35) -> Result<std::path::PathBuf, Error<GetPublicUserIconError>> {
36 let local_var_configuration = configuration;
37
38 let local_var_client = &local_var_configuration.client;
39
40 let local_var_uri_str = format!(
41 "{}/public/icon/{username}",
42 local_var_configuration.base_path,
43 username = crate::apis::urlencode(username)
44 );
45 let mut local_var_req_builder =
46 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
47
48 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
49 local_var_req_builder =
50 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
51 }
52 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
53 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
54 };
55 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
56 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
57 };
58
59 let local_var_req = local_var_req_builder.build()?;
60 let local_var_resp = local_var_client.execute(local_var_req).await?;
61
62 let local_var_status = local_var_resp.status();
63 let local_var_content = local_var_resp.text().await?;
64
65 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
66 serde_json::from_str(&local_var_content).map_err(Error::from)
67 } else {
68 let local_var_entity: Option<GetPublicUserIconError> =
69 serde_json::from_str(&local_var_content).ok();
70 let local_var_error = ResponseContent {
71 status: local_var_status,
72 content: local_var_content,
73 entity: local_var_entity,
74 };
75 Err(Error::ResponseError(local_var_error))
76 }
77}
78
79pub async fn get_server_version(
81 configuration: &configuration::Configuration,
82) -> Result<crate::models::Version, Error<GetServerVersionError>> {
83 let local_var_configuration = configuration;
84
85 let local_var_client = &local_var_configuration.client;
86
87 let local_var_uri_str = format!("{}/version", local_var_configuration.base_path);
88 let mut local_var_req_builder =
89 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
90
91 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
92 local_var_req_builder =
93 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
94 }
95 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
96 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
97 };
98 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
99 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
100 };
101
102 let local_var_req = local_var_req_builder.build()?;
103 let local_var_resp = local_var_client.execute(local_var_req).await?;
104
105 let local_var_status = local_var_resp.status();
106 let local_var_content = local_var_resp.text().await?;
107
108 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
109 serde_json::from_str(&local_var_content).map_err(Error::from)
110 } else {
111 let local_var_entity: Option<GetServerVersionError> =
112 serde_json::from_str(&local_var_content).ok();
113 let local_var_error = ResponseContent {
114 status: local_var_status,
115 content: local_var_content,
116 entity: local_var_entity,
117 };
118 Err(Error::ResponseError(local_var_error))
119 }
120}