use apibrasil::{ApiBrasil, ErrorKind};
use serde_json::json;
#[tokio::main]
async fn main() {
let api = ApiBrasil::from_env();
match api.catalog().status().await {
Ok(status) => println!("gateway: {status}"),
Err(error) => eprintln!("status falhou: {error}"),
}
match api
.consulta()
.cnpj(json!({ "cnpj": "00000000000000" }))
.await
{
Ok(empresa) => {
println!("saldo restante: {:?}", empresa.balance());
println!("dados: {:?}", empresa.data());
}
Err(error) => match error.kind() {
ErrorKind::InsufficientBalance => eprintln!("Recarregue seus créditos"),
ErrorKind::Authentication => eprintln!("Defina APIBRASIL_BEARER_TOKEN"),
ErrorKind::RateLimit => eprintln!("Aguarde {:?}", error.retry_after),
_ => eprintln!("consulta falhou: {error}"),
},
}
match api.cep().cep(json!({ "cep": "01001000" })).await {
Ok(cep) => println!("cep: {:?}", cep.response()),
Err(error) => eprintln!("cep falhou: {error}"),
}
}