policies 0.1.1

Execute stored policies and flows over REST using API keys
Documentation
use policies::{
    init_bugfixes, ExecuteFlowRequest, ExecutionClient, ExecutionClientConfig, Reference,
    TransportConfig, TransportKind,
};
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    init_bugfixes()?;

    let client = ExecutionClient::new(ExecutionClientConfig {
        api_key: std::env::var("POLICY_API_KEY").unwrap_or_else(|_| "pk_live_example".into()),
        transport: TransportConfig {
            kind: TransportKind::Rpc,
            base_url: None,
            address: std::env::var("POLICY_RPC_ADDRESS").ok(),
            tls: false,
        },
        timeout: None,
        user_agent: None,
    })?;

    let response = client
        .execute_flow(ExecuteFlowRequest {
            id: "ae6fb044-ad2b-45fd-82d1-0d2f1fa176a5".into(),
            reference: Reference::Base,
            data: json!({
                "drivingTest": {
                    "person": {
                        "name": "Alice",
                        "dateOfBirth": "1992-05-12"
                    }
                }
            }),
        })
        .await?;

    println!("Flow result: {}", response.result);
    println!("Visited nodes: {}", response.node_response.len());
    Ok(())
}