use zammad_api::{Auth, Client};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let url = std::env::var("ZAMMAD_URL")?;
let token = std::env::var("ZAMMAD_TOKEN")?;
let client = Client::builder().url(url).auth(Auth::token(token)).build()?;
let kb = client.knowledge_base();
let answers = kb.list().await?;
for answer in &answers {
println!(
"#{:>6} [{:<7}] {} ({})",
answer.id,
if answer.published { "public" } else { "draft" },
answer.title.as_deref().unwrap_or("-"),
answer.category.as_deref().unwrap_or("-")
);
}
eprintln!("listed {} answers", answers.len());
let Some(first) = answers.first() else {
eprintln!("no knowledge base answers found");
return Ok(());
};
let answer = kb.get(first.id).await?;
println!(
"\n=== first answer #{:>4} [{:<7}] {} ({}) ===",
answer.id,
if answer.published { "public" } else { "draft" },
answer.title.as_deref().unwrap_or("-"),
answer.category.as_deref().unwrap_or("-")
);
println!("{}", answer.body.as_deref().unwrap_or("(no body)"));
Ok(())
}