use std::collections::HashMap;
use crate::client::OpenLibraryClient;
use crate::error::Result;
use crate::models::common::BooksJsCmd;
use crate::models::query::BooksApiEntry;
use crate::validation::validate_bibkeys;
impl OpenLibraryClient {
pub async fn get_books(
&self,
bibkeys: &[String],
jscmd: BooksJsCmd,
) -> Result<HashMap<String, BooksApiEntry>> {
validate_bibkeys(bibkeys)?;
let joined = bibkeys.join("|");
let mut url = self.base_url.join("api/books")?;
url.query_pairs_mut()
.append_pair("bibkeys", &joined)
.append_pair("jscmd", jscmd.as_str())
.append_pair("format", "json");
self.get_json(url).await
}
}