use crate::client::OpenLibraryClient;
use crate::error::{Error, Result};
use crate::models::common::VolumeIdType;
use crate::models::partner::VolumesResponse;
impl OpenLibraryClient {
pub async fn read_volume(
&self,
id_type: VolumeIdType,
id_value: &str,
) -> Result<VolumesResponse> {
if id_value.is_empty() {
return Err(Error::InvalidInput("id_value must not be empty".into()));
}
let path = format!("api/volumes/brief/{}/{}.json", id_type.as_str(), id_value);
let url = self.base_url.join(&path)?;
self.get_json(url).await
}
pub async fn read_volumes_batch(
&self,
requests: &[String],
) -> Result<VolumesResponse> {
if requests.is_empty() {
return Err(Error::InvalidInput("requests list must not be empty".into()));
}
let joined = requests.join("|");
let path = format!("api/volumes/brief/json/{}", joined);
let url = self.base_url.join(&path)?;
self.get_json(url).await
}
}