fyers-rs 0.0.1

Idiomatic async Rust client for the Fyers API v3 broker APIs.
Documentation
use fyers_rs::models::auth::RefreshTokenRequest;
use fyers_rs::{FyersClient, FyersError};

#[tokio::main]
async fn main() -> Result<(), FyersError> {
    let client = FyersClient::builder()
        .client_id(std::env::var("FYERS_CLIENT_ID").expect("FYERS_CLIENT_ID is required"))
        .secret_key(std::env::var("FYERS_SECRET_KEY").expect("FYERS_SECRET_KEY is required"))
        .build()?;
    let request = RefreshTokenRequest::new(
        client.auth().app_id_hash()?,
        std::env::var("FYERS_REFRESH_TOKEN").expect("FYERS_REFRESH_TOKEN is required"),
        std::env::var("FYERS_PIN").expect("FYERS_PIN is required"),
    );
    let token = client.auth().refresh_access_token(&request).await?;

    println!("status: s={} code={} message={:?}", token.s, token.code, token.message);
    println!(
        "access_token: {}",
        token.access_token.as_deref().unwrap_or("(none)")
    );
    println!(
        "refresh_token: {}",
        token.refresh_token.as_deref().unwrap_or("(none)")
    );
    eprintln!(
        "\nTreat both tokens as secrets. Paste them into .env as FYERS_ACCESS_TOKEN and FYERS_REFRESH_TOKEN."
    );
    Ok(())
}