cloudreve_api/api/v3/
directory.rs1use crate::Error;
4use crate::api::v3::ApiV3Client;
5use crate::api::v3::models::*;
6
7impl ApiV3Client {
8 pub async fn list_directory(&self, path: &str) -> Result<DirectoryList, Error> {
10 let normalized_path = if path.ends_with('/') && path != "/" {
12 &path[..path.len() - 1]
13 } else {
14 path
15 };
16 let encoded_path = urlencoding::encode(normalized_path);
17 let response: ApiResponse<DirectoryList> =
18 self.get(&format!("/directory{}", encoded_path)).await?;
19 match response.data {
20 Some(list) => Ok(list),
21 None => Err(Error::Api {
22 code: response.code,
23 message: response.msg,
24 }),
25 }
26 }
27
28 pub async fn create_directory(
30 &self,
31 request: &CreateDirectoryRequest<'_>,
32 ) -> Result<(), Error> {
33 let response: ApiResponse<()> = self.put("/directory", request).await?;
34 if response.code == 0 {
35 Ok(())
36 } else {
37 Err(Error::Api {
38 code: response.code,
39 message: response.msg,
40 })
41 }
42 }
43}