Skip to main content

box_open_sdk/managers/
tasks.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 "tasks" API area.
7pub struct TasksManager {
8    session: std::sync::Arc<runtime::Client>,
9}
10
11impl TasksManager {
12    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
13        Self { session }
14    }
15
16    pub async fn list_file(&self, file_id: String) -> Result<crate::models::schemas::Tasks, Error> {
17        let mut url = self.session.base_url("api");
18        url.push_str("/files");
19        url.push('/');
20        let seg = path_escape(&file_id);
21        url.push_str(&seg);
22        url.push_str("/tasks");
23        let req = self.session.new_request("GET", &url);
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::TaskCreateRequest,
32    ) -> Result<crate::models::schemas::Task, Error> {
33        let mut url = self.session.base_url("api");
34        url.push_str("/tasks");
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 get(&self, task_id: String) -> Result<crate::models::schemas::Task, Error> {
44        let mut url = self.session.base_url("api");
45        url.push_str("/tasks");
46        url.push('/');
47        let seg = path_escape(&task_id);
48        url.push_str(&seg);
49        let req = self.session.new_request("GET", &url);
50        let resp = self.session.fetch(req).await?;
51        let data = runtime::response_bytes(&resp)?;
52        Ok(serde_json::from_slice(&data)?)
53    }
54
55    pub async fn update(
56        &self,
57        task_id: String,
58        body: crate::models::schemas::TaskUpdateRequest,
59    ) -> Result<crate::models::schemas::Task, Error> {
60        let mut url = self.session.base_url("api");
61        url.push_str("/tasks");
62        url.push('/');
63        let seg = path_escape(&task_id);
64        url.push_str(&seg);
65        let mut req = self.session.new_request("PUT", &url);
66        let payload = serde_json::to_vec(&body)?;
67        req = runtime::with_json_body(req, &payload);
68        let resp = self.session.fetch(req).await?;
69        let data = runtime::response_bytes(&resp)?;
70        Ok(serde_json::from_slice(&data)?)
71    }
72
73    pub async fn delete(&self, task_id: String) -> Result<(), Error> {
74        let mut url = self.session.base_url("api");
75        url.push_str("/tasks");
76        url.push('/');
77        let seg = path_escape(&task_id);
78        url.push_str(&seg);
79        let req = self.session.new_request("DELETE", &url);
80        let _ = self.session.fetch(req).await?;
81        Ok(())
82    }
83}