cloudreve_api/api/v3/
site.rs

1//! Site-related API endpoints for Cloudreve API v3
2
3use crate::api::v3::models::*;
4use crate::api::v3::ApiV3Client;
5use crate::Error;
6
7impl ApiV3Client {
8    /// Get site configuration
9    pub async fn get_site_config(&self) -> Result<SiteConfig, Error> {
10        let response: ApiResponse<SiteConfig> = self.get("/site/config").await?;
11        match response.data {
12            Some(config) => Ok(config),
13            None => Err(Error::Api {
14                code: response.code,
15                message: response.msg,
16            }),
17        }
18    }
19
20    /// Get user storage information
21    pub async fn get_user_storage(&self) -> Result<StorageInfo, Error> {
22        let response: ApiResponse<StorageInfo> = self.get("/user/storage").await?;
23        match response.data {
24            Some(storage) => Ok(storage),
25            None => Err(Error::Api {
26                code: response.code,
27                message: response.msg,
28            }),
29        }
30    }
31
32    /// Ping the server
33    pub async fn ping(&self) -> Result<String, Error> {
34        let response: ApiResponse<String> = self.get("/site/ping").await?;
35        Ok(response.msg)
36    }
37
38    /// Get user settings
39    pub async fn get_user_settings(&self) -> Result<StorageInfo, Error> {
40        let response: ApiResponse<StorageInfo> = self.get("/user/setting").await?;
41        match response.data {
42            Some(settings) => Ok(settings),
43            None => Err(Error::Api {
44                code: response.code,
45                message: response.msg,
46            }),
47        }
48    }
49
50    /// Get task queue
51    pub async fn get_task_queue(&self) -> Result<Vec<Aria2Task>, Error> {
52        let response: ApiResponse<Vec<Aria2Task>> = self.get("/user/setting/tasks").await?;
53        match response.data {
54            Some(tasks) => Ok(tasks),
55            None => Err(Error::Api {
56                code: response.code,
57                message: response.msg,
58            }),
59        }
60    }
61}