Skip to main content

box_open_sdk/managers/
task_assignments.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 "task_assignments" API area.
7pub struct TaskAssignmentsManager {
8    session: std::sync::Arc<runtime::Client>,
9}
10
11impl TaskAssignmentsManager {
12    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
13        Self { session }
14    }
15
16    pub async fn list_task_assignments(
17        &self,
18        task_id: String,
19    ) -> Result<crate::models::schemas::TaskAssignments, Error> {
20        let mut url = self.session.base_url("api");
21        url.push_str("/tasks");
22        url.push('/');
23        let seg = path_escape(&task_id);
24        url.push_str(&seg);
25        url.push_str("/assignments");
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 create(
33        &self,
34        body: crate::models::schemas::TaskAssignmentCreateRequest,
35    ) -> Result<crate::models::schemas::TaskAssignment, Error> {
36        let mut url = self.session.base_url("api");
37        url.push_str("/task_assignments");
38        let mut req = self.session.new_request("POST", &url);
39        let payload = serde_json::to_vec(&body)?;
40        req = runtime::with_json_body(req, &payload);
41        let resp = self.session.fetch(req).await?;
42        let data = runtime::response_bytes(&resp)?;
43        Ok(serde_json::from_slice(&data)?)
44    }
45
46    pub async fn get(
47        &self,
48        task_assignment_id: String,
49    ) -> Result<crate::models::schemas::TaskAssignment, Error> {
50        let mut url = self.session.base_url("api");
51        url.push_str("/task_assignments");
52        url.push('/');
53        let seg = path_escape(&task_assignment_id);
54        url.push_str(&seg);
55        let req = self.session.new_request("GET", &url);
56        let resp = self.session.fetch(req).await?;
57        let data = runtime::response_bytes(&resp)?;
58        Ok(serde_json::from_slice(&data)?)
59    }
60
61    pub async fn update(
62        &self,
63        task_assignment_id: String,
64        body: crate::models::schemas::TaskAssignmentUpdateRequest,
65    ) -> Result<crate::models::schemas::TaskAssignment, Error> {
66        let mut url = self.session.base_url("api");
67        url.push_str("/task_assignments");
68        url.push('/');
69        let seg = path_escape(&task_assignment_id);
70        url.push_str(&seg);
71        let mut req = self.session.new_request("PUT", &url);
72        let payload = serde_json::to_vec(&body)?;
73        req = runtime::with_json_body(req, &payload);
74        let resp = self.session.fetch(req).await?;
75        let data = runtime::response_bytes(&resp)?;
76        Ok(serde_json::from_slice(&data)?)
77    }
78
79    pub async fn delete(&self, task_assignment_id: String) -> Result<(), Error> {
80        let mut url = self.session.base_url("api");
81        url.push_str("/task_assignments");
82        url.push('/');
83        let seg = path_escape(&task_assignment_id);
84        url.push_str(&seg);
85        let req = self.session.new_request("DELETE", &url);
86        let _ = self.session.fetch(req).await?;
87        Ok(())
88    }
89}