Skip to main content

box_open_sdk/managers/
events.rs

1// Code generated by box-gantry. DO NOT EDIT.
2
3use crate::runtime::{self, Error};
4
5/// Optional parameters for [`EventsManager::list`].
6#[derive(Clone, Debug, Default)]
7pub struct EventsListOptions {
8    pub stream_type: Option<crate::models::schemas::GetStreamType>,
9    pub stream_position: Option<String>,
10    pub limit: Option<i64>,
11    pub event_type: Option<Vec<crate::models::schemas::GetEventType>>,
12    pub created_after: Option<String>,
13    pub created_before: Option<String>,
14}
15
16/// Operations for the "events" API area.
17pub struct EventsManager {
18    session: std::sync::Arc<runtime::Client>,
19}
20
21impl EventsManager {
22    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
23        Self { session }
24    }
25
26    pub async fn list(
27        &self,
28        opts: Option<EventsListOptions>,
29    ) -> Result<crate::models::schemas::Events, Error> {
30        let mut url = self.session.base_url("api");
31        url.push_str("/events");
32        let mut req = self.session.new_request("GET", &url);
33        let opts = opts.unwrap_or_default();
34        if let Some(value) = opts.stream_type {
35            req = runtime::with_query(req, "stream_type", &value.0);
36        }
37        if let Some(value) = opts.stream_position {
38            req = runtime::with_query(req, "stream_position", &value);
39        }
40        if let Some(value) = opts.limit {
41            req = runtime::with_query(req, "limit", &value.to_string());
42        }
43        if let Some(value) = opts.event_type {
44            let arg = crate::internal::join(&value, |v| v.0.clone());
45            req = runtime::with_query(req, "event_type", &arg);
46        }
47        if let Some(value) = opts.created_after {
48            req = runtime::with_query(req, "created_after", &value);
49        }
50        if let Some(value) = opts.created_before {
51            req = runtime::with_query(req, "created_before", &value);
52        }
53        let resp = self.session.fetch(req).await?;
54        let data = runtime::response_bytes(&resp)?;
55        Ok(serde_json::from_slice(&data)?)
56    }
57
58    pub async fn options(&self) -> Result<crate::models::schemas::RealtimeServers, Error> {
59        let mut url = self.session.base_url("api");
60        url.push_str("/events");
61        let req = self.session.new_request("OPTIONS", &url);
62        let resp = self.session.fetch(req).await?;
63        let data = runtime::response_bytes(&resp)?;
64        Ok(serde_json::from_slice(&data)?)
65    }
66}