use rbgg::{bgg1::Client1, bgg2::*, utils::Params};
use serde_json::to_string_pretty;
use std::env;
fn get_api_key() -> String {
return env::var("BGG_API").unwrap();
}
#[test]
fn test_search() {
let api_key = get_api_key();
let cl = Client1::new_from_defaults(&api_key);
let params = Params::from([("exact".into(), "1".into())]);
let res = cl.search_b("bruges", Some(params));
assert!(res.is_ok());
let data = res.unwrap();
println!("{}", to_string_pretty(&data).unwrap());
assert_eq!("Bruges", &data["boardgames"]["boardgame"]["name"]["#text"]);
let api_key = get_api_key();
let cl = Client2::new_from_defaults(&api_key);
let params = Params::from([("exact".into(), "1".into())]);
let res = cl.search_b("bruges", &vec![Search::BoardGame], Some(params));
assert!(res.is_ok());
let data = res.unwrap();
println!("{}", to_string_pretty(&data).unwrap());
assert_eq!("Bruges", data["items"]["item"]["name"]["@value"]);
}
#[test]
fn test_boardgame() {
let api_key = get_api_key();
let cl = Client1::new_from_defaults(&api_key);
let params = Params::from([("stats".into(), "1".into())]);
let res = cl.boardgame_b(&vec![136888, 133473], Some(params));
assert!(res.is_ok());
let data = res.unwrap();
for game in data["boardgames"]["boardgame"].as_array().unwrap() {
if game["@objectid"] != "136888" && game["@objectid"] != "133473" {
panic!();
}
}
println!(
"{}",
to_string_pretty(&data["boardgames"]["boardgame"]).unwrap()
);
let api_key = get_api_key();
let cl = Client2::new_from_defaults(&api_key);
let params = Params::from([("stats".into(), "1".into())]);
let res = cl.boardgame_b(&vec![136888, 133473], Some(params));
assert!(res.is_ok());
let data = res.unwrap();
println!("{}", to_string_pretty(&data).unwrap());
for game in data["items"]["item"].as_array().unwrap() {
if game["@id"] != "136888" && game["@id"] != "133473" {
panic!();
}
}
println!("{}", to_string_pretty(&data["items"]["item"]).unwrap());
}