Skip to main content

box_open_sdk/managers/
folder_locks.rs

1// Code generated by box-gantry. DO NOT EDIT.
2
3use crate::internal::path_escape;
4use crate::runtime::{self, Error};
5
6/// Operations for the "folder_locks" API area.
7pub struct FolderLocksManager {
8    session: std::sync::Arc<runtime::Client>,
9}
10
11impl FolderLocksManager {
12    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
13        Self { session }
14    }
15
16    pub async fn list(
17        &self,
18        folder_id: String,
19    ) -> Result<crate::models::schemas::FolderLocks, Error> {
20        let mut url = self.session.base_url("api");
21        url.push_str("/folder_locks");
22        let mut req = self.session.new_request("GET", &url);
23        req = runtime::with_query(req, "folder_id", &folder_id);
24        let resp = self.session.fetch(req).await?;
25        let data = runtime::response_bytes(&resp)?;
26        Ok(serde_json::from_slice(&data)?)
27    }
28
29    pub async fn create(
30        &self,
31        body: crate::models::schemas::CreateFolderLockRequest,
32    ) -> Result<crate::models::schemas::FolderLock, Error> {
33        let mut url = self.session.base_url("api");
34        url.push_str("/folder_locks");
35        let mut req = self.session.new_request("POST", &url);
36        let payload = serde_json::to_vec(&body)?;
37        req = runtime::with_json_body(req, &payload);
38        let resp = self.session.fetch(req).await?;
39        let data = runtime::response_bytes(&resp)?;
40        Ok(serde_json::from_slice(&data)?)
41    }
42
43    pub async fn delete(&self, folder_lock_id: String) -> Result<(), Error> {
44        let mut url = self.session.base_url("api");
45        url.push_str("/folder_locks");
46        url.push('/');
47        let seg = path_escape(&folder_lock_id);
48        url.push_str(&seg);
49        let req = self.session.new_request("DELETE", &url);
50        let _ = self.session.fetch(req).await?;
51        Ok(())
52    }
53}