cloudreve_api/api/v3/
object.rs1use crate::api::v3::models::*;
4use crate::api::v3::ApiV3Client;
5use crate::Error;
6
7impl ApiV3Client {
8 pub async fn get_object_property(
10 &self,
11 id: &str,
12 is_folder: Option<bool>,
13 trace_root: Option<bool>,
14 ) -> Result<Property, Error> {
15 let mut query_params = Vec::new();
16 if let Some(folder) = is_folder {
17 query_params.push(format!("is_folder={}", folder));
18 }
19 if let Some(trace) = trace_root {
20 query_params.push(format!("trace_root={}", trace));
21 }
22
23 let endpoint = if query_params.is_empty() {
24 format!("/object/property/{}", id)
25 } else {
26 format!("/object/property/{}?{}", id, query_params.join("&"))
27 };
28
29 let response: ApiResponse<Property> = self.get(&endpoint).await?;
30 match response.data {
31 Some(property) => Ok(property),
32 None => Err(Error::Api {
33 code: response.code,
34 message: response.msg,
35 }),
36 }
37 }
38
39 pub async fn rename_object(&self, request: &RenameObjectRequest<'_>) -> Result<(), Error> {
41 let response: ApiResponse<()> = self.post("/object/rename", request).await?;
42 if response.code == 0 {
43 Ok(())
44 } else {
45 Err(Error::Api {
46 code: response.code,
47 message: response.msg,
48 })
49 }
50 }
51
52 pub async fn move_object(&self, request: &MoveObjectRequest<'_>) -> Result<(), Error> {
54 let response: ApiResponse<()> = self.patch("/object", request).await?;
55 if response.code == 0 {
56 Ok(())
57 } else {
58 Err(Error::Api {
59 code: response.code,
60 message: response.msg,
61 })
62 }
63 }
64
65 pub async fn copy_object(&self, request: &CopyObjectRequest<'_>) -> Result<(), Error> {
67 let response: ApiResponse<()> = self.post("/object/copy", request).await?;
68 if response.code == 0 {
69 Ok(())
70 } else {
71 Err(Error::Api {
72 code: response.code,
73 message: response.msg,
74 })
75 }
76 }
77
78 pub async fn delete_object(&self, request: &DeleteObjectRequest<'_>) -> Result<(), Error> {
80 let response: ApiResponse<()> = self.delete_with_body("/object", request).await?;
81 if response.code == 0 {
82 Ok(())
83 } else {
84 Err(Error::Api {
85 code: response.code,
86 message: response.msg,
87 })
88 }
89 }
90}