cortex_client/apis/
attachment_api.rs1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum DownloadAttachmentError {
22 Status400(models::Error),
23 Status401(models::Error),
24 Status403(models::Error),
25 UnknownValue(serde_json::Value),
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum DownloadAttachmentZipError {
32 Status400(models::Error),
33 Status401(models::Error),
34 Status403(models::Error),
35 UnknownValue(serde_json::Value),
36}
37
38
39pub async fn download_attachment(configuration: &configuration::Configuration, hash: &str, name: Option<&str>) -> Result<reqwest::Response, Error<DownloadAttachmentError>> {
40 let p_hash = hash;
42 let p_name = name;
43
44 let uri_str = format!("{}/attachment/{hash}", configuration.base_path, hash=crate::apis::urlencode(p_hash));
45 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
46
47 if let Some(ref param_value) = p_name {
48 req_builder = req_builder.query(&[("name", ¶m_value.to_string())]);
49 }
50 if let Some(ref user_agent) = configuration.user_agent {
51 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
52 }
53 if let Some(ref token) = configuration.bearer_access_token {
54 req_builder = req_builder.bearer_auth(token.to_owned());
55 };
56
57 let req = req_builder.build()?;
58 let resp = configuration.client.execute(req).await?;
59
60 let status = resp.status();
61
62 if !status.is_client_error() && !status.is_server_error() {
63 Ok(resp)
64 } else {
65 let content = resp.text().await?;
66 let entity: Option<DownloadAttachmentError> = serde_json::from_str(&content).ok();
67 Err(Error::ResponseError(ResponseContent { status, content, entity }))
68 }
69}
70
71pub async fn download_attachment_zip(configuration: &configuration::Configuration, hash: &str, name: Option<&str>) -> Result<reqwest::Response, Error<DownloadAttachmentZipError>> {
72 let p_hash = hash;
74 let p_name = name;
75
76 let uri_str = format!("{}/attachment/{hash}/zip", configuration.base_path, hash=crate::apis::urlencode(p_hash));
77 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
78
79 if let Some(ref param_value) = p_name {
80 req_builder = req_builder.query(&[("name", ¶m_value.to_string())]);
81 }
82 if let Some(ref user_agent) = configuration.user_agent {
83 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
84 }
85 if let Some(ref token) = configuration.bearer_access_token {
86 req_builder = req_builder.bearer_auth(token.to_owned());
87 };
88
89 let req = req_builder.build()?;
90 let resp = configuration.client.execute(req).await?;
91
92 let status = resp.status();
93
94 if !status.is_client_error() && !status.is_server_error() {
95 Ok(resp)
96 } else {
97 let content = resp.text().await?;
98 let entity: Option<DownloadAttachmentZipError> = serde_json::from_str(&content).ok();
99 Err(Error::ResponseError(ResponseContent { status, content, entity }))
100 }
101}
102