colink 0.3.10

CoLink Rust SDK
Documentation
use colink::{
    decode_jwt_without_validation, extensions::registry::UserRecord, CoLink, Participant,
};
use prost::Message;
use std::env;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
    let args = env::args().skip(1).collect::<Vec<_>>();
    let addr = &args[0];
    let jwt = &args[1];
    let target_user = &args[2];
    let user_id = decode_jwt_without_validation(jwt).unwrap().user_id;

    let user = UserRecord {
        user_id: target_user.to_string(),
        ..Default::default()
    };
    let mut payload = vec![];
    user.encode(&mut payload).unwrap();
    let cl = CoLink::new(addr, jwt);
    let participants = vec![Participant {
        user_id: user_id.to_string(),
        role: "query_from_registries".to_string(),
    }];
    let task_id = cl
        .run_task("registry", &payload, &participants, false)
        .await?;
    println!(
        "Task {} has been created, waiting for it to finish...",
        task_id
    );
    cl.wait_task(&task_id).await?;
    println!("Task {} finished", task_id);

    Ok(())
}