cloudreve_api/api/v4/
site.rs1use crate::api::v4::ApiV4Client;
4use crate::api::v4::models::*;
5use crate::api::VersionInfo;
6use crate::Error;
7use crate::VERSION;
8
9impl ApiV4Client {
10 pub async fn get_version(&self) -> Result<VersionInfo, Error> {
12 Ok(VersionInfo {
13 api_version: "v4".to_string(),
14 library_version: VERSION.to_string(),
15 server_version: "unknown".to_string(),
16 })
17 }
18
19 pub async fn ping(&self) -> Result<String, Error> {
20 let response: crate::ApiResponse<String> = self.get("/site/ping").await?;
21 Ok(response.msg)
22 }
23
24 pub async fn get_site_config(&self, section: &str) -> Result<SiteConfig, Error> {
25 let endpoint = format!("/site/config/{}", section);
26 let response: crate::ApiResponse<SiteConfig> = self.get(&endpoint).await?;
27 match response.data {
28 Some(config) => Ok(config),
29 None => Err(crate::Error::Api {
30 code: response.code,
31 message: response.msg,
32 }),
33 }
34 }
35
36 pub async fn report_site_abuse(&self, request: &AbuseReportRequest<'_>) -> Result<(), Error> {
37 let response: crate::ApiResponse<()> = self.post("/site/abuse", request).await?;
38 if response.code == 0 {
39 Ok(())
40 } else {
41 Err(crate::Error::Api {
42 code: response.code,
43 message: response.msg,
44 })
45 }
46 }
47
48 pub async fn get_captcha(&self) -> Result<CaptchaResponse, Error> {
49 self.get("/site/captcha").await
50 }
51}