use crate::Error;
use crate::api::v3::ApiV3Client;
use crate::api::v3::models::*;
impl ApiV3Client {
pub async fn create_share(&self, request: &ShareRequest) -> Result<Share, Error> {
let raw_text = self.post_raw("/share", request).await?;
if let Ok(api_response) = serde_json::from_str::<ApiResponse<Share>>(&raw_text) {
if let Some(share) = api_response.data {
return Ok(share);
}
return Err(Error::Api {
code: api_response.code,
message: api_response.msg,
});
}
let url = raw_text.trim();
let key = url.split('/').next_back().unwrap_or("").to_string();
Ok(Share {
key,
..Default::default()
})
}
}