Skip to main content

box_open_sdk/managers/
web_links.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 [`WebLinksManager::get`].
7#[derive(Clone, Debug, Default)]
8pub struct WebLinksGetOptions {
9    pub boxapi: Option<String>,
10}
11
12/// Operations for the "web_links" API area.
13pub struct WebLinksManager {
14    session: std::sync::Arc<runtime::Client>,
15}
16
17impl WebLinksManager {
18    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
19        Self { session }
20    }
21
22    pub async fn create(
23        &self,
24        body: crate::models::schemas::CreateWebLinkRequest,
25    ) -> Result<crate::models::schemas::WebLink, Error> {
26        let mut url = self.session.base_url("api");
27        url.push_str("/web_links");
28        let mut req = self.session.new_request("POST", &url);
29        let payload = serde_json::to_vec(&body)?;
30        req = runtime::with_json_body(req, &payload);
31        let resp = self.session.fetch(req).await?;
32        let data = runtime::response_bytes(&resp)?;
33        Ok(serde_json::from_slice(&data)?)
34    }
35
36    pub async fn get(
37        &self,
38        web_link_id: String,
39        opts: Option<WebLinksGetOptions>,
40    ) -> Result<crate::models::schemas::WebLink, Error> {
41        let mut url = self.session.base_url("api");
42        url.push_str("/web_links");
43        url.push('/');
44        let seg = path_escape(&web_link_id);
45        url.push_str(&seg);
46        let mut req = self.session.new_request("GET", &url);
47        let opts = opts.unwrap_or_default();
48        if let Some(value) = opts.boxapi {
49            req = runtime::with_header(req, "boxapi", &value);
50        }
51        let resp = self.session.fetch(req).await?;
52        let data = runtime::response_bytes(&resp)?;
53        Ok(serde_json::from_slice(&data)?)
54    }
55
56    pub async fn update(
57        &self,
58        web_link_id: String,
59        body: crate::models::schemas::UpdateWebLinkRequest,
60    ) -> Result<crate::models::schemas::WebLink, Error> {
61        let mut url = self.session.base_url("api");
62        url.push_str("/web_links");
63        url.push('/');
64        let seg = path_escape(&web_link_id);
65        url.push_str(&seg);
66        let mut req = self.session.new_request("PUT", &url);
67        let payload = serde_json::to_vec(&body)?;
68        req = runtime::with_json_body(req, &payload);
69        let resp = self.session.fetch(req).await?;
70        let data = runtime::response_bytes(&resp)?;
71        Ok(serde_json::from_slice(&data)?)
72    }
73
74    pub async fn delete(&self, web_link_id: String) -> Result<(), Error> {
75        let mut url = self.session.base_url("api");
76        url.push_str("/web_links");
77        url.push('/');
78        let seg = path_escape(&web_link_id);
79        url.push_str(&seg);
80        let req = self.session.new_request("DELETE", &url);
81        let _ = self.session.fetch(req).await?;
82        Ok(())
83    }
84}