traq/apis/
public_api.rs

1/*
2 * traQ v3
3 *
4 * traQ v3 API
5 *
6 * The version of the OpenAPI document: 3.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16/// struct for typed errors of method [`get_public_user_icon`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum GetPublicUserIconError {
20    Status404(),
21    UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`get_server_version`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum GetServerVersionError {
28    UnknownValue(serde_json::Value),
29}
30
31/// ユーザーのアイコン画像を取得します。
32pub 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
79/// サーバーバージョン及びサーバーフラグ情報を取得します。
80pub 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}