Skip to main content

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