zammad-api 0.4.0

Async, idiomatic Rust client for the Zammad Service Platform
Documentation
//! Add a reply (article) to a ticket.
//!
//! ```sh
//! ZAMMAD_URL=https://help.example.com ZAMMAD_TOKEN=... \
//!   cargo run --example reply_to_ticket -- 42 "Thanks for the report."
//! ```

use zammad_api::{models::NewArticle, Auth, Client};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let url = std::env::var("ZAMMAD_URL")?;
    let token = std::env::var("ZAMMAD_TOKEN")?;

    let mut args = std::env::args().skip(1);
    let ticket_id: u64 = args.next().expect("ticket id").parse()?;
    let body = args.next().expect("reply body");

    let client = Client::builder().url(url).auth(Auth::token(token)).build()?;

    let article = client
        .articles()
        .create(ticket_id)
        .article(
            NewArticle::new(body)
                .article_type("note")
                .internal(false),
        )
        .send()
        .await?;

    println!("created article #{}", article.id);
    Ok(())
}