user_wait_task/
user_wait_task.rs1use colink::{
2 decode_jwt_without_validation, extensions::registry::UserRecord, CoLink, Participant,
3};
4use prost::Message;
5use std::env;
6
7#[tokio::main]
8async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
9 let args = env::args().skip(1).collect::<Vec<_>>();
10 let addr = &args[0];
11 let jwt = &args[1];
12 let target_user = &args[2];
13 let user_id = decode_jwt_without_validation(jwt).unwrap().user_id;
14
15 let user = UserRecord {
16 user_id: target_user.to_string(),
17 ..Default::default()
18 };
19 let mut payload = vec![];
20 user.encode(&mut payload).unwrap();
21 let cl = CoLink::new(addr, jwt);
22 let participants = vec![Participant {
23 user_id: user_id.to_string(),
24 role: "query_from_registries".to_string(),
25 }];
26 let task_id = cl
27 .run_task("registry", &payload, &participants, false)
28 .await?;
29 println!(
30 "Task {} has been created, waiting for it to finish...",
31 task_id
32 );
33 cl.wait_task(&task_id).await?;
34 println!("Task {} finished", task_id);
35
36 Ok(())
37}