use std::fs;
use std::path::Path;
pub fn request<S: AsRef<str>>(input: S) -> Vec<u8> {
let reffed = input.as_ref();
let cache = Path::new("assets").join("saves").join(reffed);
if cache.exists() {
println!("cache hit: {}", reffed);
fs::read(cache).unwrap()
} else {
println!("cache miss: {}", reffed);
let url = format!(
"https://imperator-test-cases.s3.us-west-002.backblazeb2.com/{}",
reffed
);
let resp = attohttpc::get(&url).send().unwrap();
if !resp.is_success() {
panic!("expected a 200 code from s3");
} else {
let data = resp.bytes().unwrap();
std::fs::create_dir_all(cache.parent().unwrap()).unwrap();
std::fs::write(&cache, &data).unwrap();
data
}
}
}