goldenpay 0.3.0

Production-oriented Rust SDK for FunPay automation
Documentation
use goldenpay::{GoldenPay, GoldenPayBot, GoldenPayConfig, GoldenPayEvent};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let golden_key = std::env::var("FUNPAY_GOLDEN_KEY")?;

    let client = GoldenPay::new(
        GoldenPayConfig::builder()
            .golden_key(golden_key)
            .state_path("data/goldenpay-state.json")
            .build(),
    )?;

    let session = client.connect().await?;
    let mut bot = GoldenPayBot::new(session);

    bot.load_state().await?;
    bot.bootstrap().await?;

    bot.run(|event, _session| async move {
        match event {
            GoldenPayEvent::NewOrder(order) => {
                println!("new order: {} | {}", order.id, order.description);
            }
            GoldenPayEvent::NewMessage(message) => {
                println!("new message in {}: {:?}", message.chat_id, message.text);
            }
        }

        Ok(())
    })
    .await?;

    Ok(())
}