hab_rs_api_client/apis/
events_api.rs1use super::{Error, configuration};
12use crate::apis::ContentType;
13use crate::{apis::ResponseContent, models};
14use async_trait::async_trait;
15#[cfg(feature = "mockall")]
16use mockall::automock;
17use reqwest;
18use serde::{Deserialize, Serialize, de::Error as _};
19use std::sync::Arc;
20
21#[cfg_attr(feature = "mockall", automock)]
22#[async_trait]
23pub trait EventsApi: Send + Sync {
24 async fn get_events<'topics>(
28 &self,
29 topics: Option<&'topics str>,
30 ) -> Result<(), Error<GetEventsError>>;
31
32 async fn init_new_state_tacker(&self) -> Result<(), Error<InitNewStateTackerError>>;
36
37 async fn update_item_list_for_state_updates<'connection_id, 'request_body>(
41 &self,
42 connection_id: &'connection_id str,
43 request_body: Option<Vec<String>>,
44 ) -> Result<(), Error<UpdateItemListForStateUpdatesError>>;
45}
46
47pub struct EventsApiClient {
48 configuration: Arc<configuration::Configuration>,
49}
50
51impl EventsApiClient {
52 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
53 Self { configuration }
54 }
55}
56
57#[async_trait]
58impl EventsApi for EventsApiClient {
59 async fn get_events<'topics>(
60 &self,
61 topics: Option<&'topics str>,
62 ) -> Result<(), Error<GetEventsError>> {
63 let local_var_configuration = &self.configuration;
64
65 let local_var_client = &local_var_configuration.client;
66
67 let local_var_uri_str = format!("{}/events", local_var_configuration.base_path);
68 let mut local_var_req_builder =
69 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
70
71 if let Some(ref local_var_str) = topics {
72 local_var_req_builder =
73 local_var_req_builder.query(&[("topics", &local_var_str.to_string())]);
74 }
75 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
76 local_var_req_builder = local_var_req_builder
77 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
78 }
79
80 let local_var_req = local_var_req_builder.build()?;
81 let local_var_resp = local_var_client.execute(local_var_req).await?;
82
83 let local_var_status = local_var_resp.status();
84 let local_var_content = local_var_resp.text().await?;
85
86 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
87 Ok(())
88 } else {
89 let local_var_entity: Option<GetEventsError> =
90 serde_json::from_str(&local_var_content).ok();
91 let local_var_error = ResponseContent {
92 status: local_var_status,
93 content: local_var_content,
94 entity: local_var_entity,
95 };
96 Err(Error::ResponseError(local_var_error))
97 }
98 }
99
100 async fn init_new_state_tacker(&self) -> Result<(), Error<InitNewStateTackerError>> {
101 let local_var_configuration = &self.configuration;
102
103 let local_var_client = &local_var_configuration.client;
104
105 let local_var_uri_str = format!("{}/events/states", local_var_configuration.base_path);
106 let mut local_var_req_builder =
107 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
108
109 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
110 local_var_req_builder = local_var_req_builder
111 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
112 }
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 Ok(())
122 } else {
123 let local_var_entity: Option<InitNewStateTackerError> =
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
134 async fn update_item_list_for_state_updates<'connection_id, 'request_body>(
135 &self,
136 connection_id: &'connection_id str,
137 request_body: Option<Vec<String>>,
138 ) -> Result<(), Error<UpdateItemListForStateUpdatesError>> {
139 let local_var_configuration = &self.configuration;
140
141 let local_var_client = &local_var_configuration.client;
142
143 let local_var_uri_str = format!(
144 "{}/events/states/{connectionId}",
145 local_var_configuration.base_path,
146 connectionId = crate::apis::urlencode(connection_id)
147 );
148 let mut local_var_req_builder =
149 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
150
151 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
152 local_var_req_builder = local_var_req_builder
153 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
154 }
155 local_var_req_builder = local_var_req_builder.json(&request_body);
156
157 let local_var_req = local_var_req_builder.build()?;
158 let local_var_resp = local_var_client.execute(local_var_req).await?;
159
160 let local_var_status = local_var_resp.status();
161 let local_var_content = local_var_resp.text().await?;
162
163 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
164 Ok(())
165 } else {
166 let local_var_entity: Option<UpdateItemListForStateUpdatesError> =
167 serde_json::from_str(&local_var_content).ok();
168 let local_var_error = ResponseContent {
169 status: local_var_status,
170 content: local_var_content,
171 entity: local_var_entity,
172 };
173 Err(Error::ResponseError(local_var_error))
174 }
175 }
176}
177
178#[derive(Debug, Clone, Serialize, Deserialize)]
180#[serde(untagged)]
181pub enum GetEventsError {
182 Status400(),
183 UnknownValue(serde_json::Value),
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(untagged)]
189pub enum InitNewStateTackerError {
190 UnknownValue(serde_json::Value),
191}
192
193#[derive(Debug, Clone, Serialize, Deserialize)]
195#[serde(untagged)]
196pub enum UpdateItemListForStateUpdatesError {
197 Status404(),
198 UnknownValue(serde_json::Value),
199}