cloudreve_api/api/v3/
site.rs1use crate::Error;
4use crate::VERSION;
5use crate::api::VersionInfo;
6use crate::api::v3::ApiV3Client;
7use crate::api::v3::models::*;
8
9impl ApiV3Client {
10 pub async fn get_site_config(&self) -> Result<SiteConfig, Error> {
12 let response: ApiResponse<SiteConfig> = self.get("/site/config").await?;
13 match response.data {
14 Some(config) => Ok(config),
15 None => Err(Error::Api {
16 code: response.code,
17 message: response.msg,
18 }),
19 }
20 }
21
22 pub async fn get_user_storage(&self) -> Result<StorageInfo, Error> {
24 let response: ApiResponse<StorageInfo> = self.get("/user/storage").await?;
25 match response.data {
26 Some(storage) => Ok(storage),
27 None => Err(Error::Api {
28 code: response.code,
29 message: response.msg,
30 }),
31 }
32 }
33
34 pub async fn ping(&self) -> Result<String, Error> {
36 let response: ApiResponse<String> = self.get("/site/ping").await?;
37 match response.data {
38 Some(version) => Ok(version),
39 None => Err(Error::Api {
40 code: response.code,
41 message: response.msg,
42 }),
43 }
44 }
45
46 pub async fn get_version(&self) -> Result<VersionInfo, Error> {
48 let server_version = self.ping().await.unwrap_or_else(|_| "unknown".to_string());
49 Ok(VersionInfo {
50 api_version: "v3".to_string(),
51 library_version: VERSION.to_string(),
52 server_version,
53 })
54 }
55
56 pub async fn get_user_settings(&self) -> Result<StorageInfo, Error> {
58 let response: ApiResponse<StorageInfo> = self.get("/user/setting").await?;
59 match response.data {
60 Some(settings) => Ok(settings),
61 None => Err(Error::Api {
62 code: response.code,
63 message: response.msg,
64 }),
65 }
66 }
67
68 pub async fn get_task_queue(&self) -> Result<Vec<Aria2Task>, Error> {
70 let response: ApiResponse<Vec<Aria2Task>> = self.get("/user/setting/tasks").await?;
71 match response.data {
72 Some(tasks) => Ok(tasks),
73 None => Err(Error::Api {
74 code: response.code,
75 message: response.msg,
76 }),
77 }
78 }
79}