cloudreve_api/api/v3/
share.rs1use crate::Error;
4use crate::api::v3::ApiV3Client;
5use crate::api::v3::models::*;
6
7impl ApiV3Client {
8 pub async fn create_share(&self, request: &ShareRequest) -> Result<Share, Error> {
11 let raw_text = self.post_raw("/share", request).await?;
13
14 if let Ok(api_response) = serde_json::from_str::<ApiResponse<Share>>(&raw_text) {
16 if let Some(share) = api_response.data {
17 return Ok(share);
18 }
19 return Err(Error::Api {
20 code: api_response.code,
21 message: api_response.msg,
22 });
23 }
24
25 let url = raw_text.trim();
27 let key = url.split('/').next_back().unwrap_or("").to_string();
29 Ok(Share {
30 key,
31 ..Default::default()
32 })
33 }
34}