Skip to main content

box_open_sdk/managers/
file_watermarks.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 "file_watermarks" API area.
7pub struct FileWatermarksManager {
8    session: std::sync::Arc<runtime::Client>,
9}
10
11impl FileWatermarksManager {
12    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
13        Self { session }
14    }
15
16    pub async fn get_file_watermark(
17        &self,
18        file_id: String,
19    ) -> Result<crate::models::schemas::Watermark, Error> {
20        let mut url = self.session.base_url("api");
21        url.push_str("/files");
22        url.push('/');
23        let seg = path_escape(&file_id);
24        url.push_str(&seg);
25        url.push_str("/watermark");
26        let req = self.session.new_request("GET", &url);
27        let resp = self.session.fetch(req).await?;
28        let data = runtime::response_bytes(&resp)?;
29        Ok(serde_json::from_slice(&data)?)
30    }
31
32    pub async fn update_file_watermark(
33        &self,
34        file_id: String,
35        body: crate::models::schemas::UpdateFileWatermarkRequest,
36    ) -> Result<crate::models::schemas::Watermark, Error> {
37        let mut url = self.session.base_url("api");
38        url.push_str("/files");
39        url.push('/');
40        let seg = path_escape(&file_id);
41        url.push_str(&seg);
42        url.push_str("/watermark");
43        let mut req = self.session.new_request("PUT", &url);
44        let payload = serde_json::to_vec(&body)?;
45        req = runtime::with_json_body(req, &payload);
46        let resp = self.session.fetch(req).await?;
47        let data = runtime::response_bytes(&resp)?;
48        Ok(serde_json::from_slice(&data)?)
49    }
50
51    pub async fn delete_file_watermark(&self, file_id: String) -> Result<(), Error> {
52        let mut url = self.session.base_url("api");
53        url.push_str("/files");
54        url.push('/');
55        let seg = path_escape(&file_id);
56        url.push_str(&seg);
57        url.push_str("/watermark");
58        let req = self.session.new_request("DELETE", &url);
59        let _ = self.session.fetch(req).await?;
60        Ok(())
61    }
62}