Skip to main content

box_open_sdk/managers/
invites.rs

1// Code generated by box-gantry. DO NOT EDIT.
2
3use crate::internal::path_escape;
4use crate::runtime::{self, Error};
5
6/// Optional parameters for [`InvitesManager::create`].
7#[derive(Clone, Debug, Default)]
8pub struct InvitesCreateOptions {
9    pub fields: Option<Vec<String>>,
10}
11
12/// Optional parameters for [`InvitesManager::get`].
13#[derive(Clone, Debug, Default)]
14pub struct InvitesGetOptions {
15    pub fields: Option<Vec<String>>,
16}
17
18/// Operations for the "invites" API area.
19pub struct InvitesManager {
20    session: std::sync::Arc<runtime::Client>,
21}
22
23impl InvitesManager {
24    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
25        Self { session }
26    }
27
28    pub async fn create(
29        &self,
30        body: crate::models::schemas::CreateInviteRequest,
31        opts: Option<InvitesCreateOptions>,
32    ) -> Result<crate::models::schemas::Invite, Error> {
33        let mut url = self.session.base_url("api");
34        url.push_str("/invites");
35        let mut req = self.session.new_request("POST", &url);
36        let opts = opts.unwrap_or_default();
37        if let Some(value) = opts.fields {
38            req = runtime::with_query(req, "fields", &value.join(","));
39        }
40        let payload = serde_json::to_vec(&body)?;
41        req = runtime::with_json_body(req, &payload);
42        let resp = self.session.fetch(req).await?;
43        let data = runtime::response_bytes(&resp)?;
44        Ok(serde_json::from_slice(&data)?)
45    }
46
47    pub async fn get(
48        &self,
49        invite_id: String,
50        opts: Option<InvitesGetOptions>,
51    ) -> Result<crate::models::schemas::Invite, Error> {
52        let mut url = self.session.base_url("api");
53        url.push_str("/invites");
54        url.push('/');
55        let seg = path_escape(&invite_id);
56        url.push_str(&seg);
57        let mut req = self.session.new_request("GET", &url);
58        let opts = opts.unwrap_or_default();
59        if let Some(value) = opts.fields {
60            req = runtime::with_query(req, "fields", &value.join(","));
61        }
62        let resp = self.session.fetch(req).await?;
63        let data = runtime::response_bytes(&resp)?;
64        Ok(serde_json::from_slice(&data)?)
65    }
66}