user_run_task/
user_run_task.rs1use colink::{decode_jwt_without_validation, CoLink, Participant};
2use std::env;
3
4#[tokio::main]
5async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
6 let args = env::args().skip(1).collect::<Vec<_>>();
7 let addr = &args[0];
8 let jwt_a = &args[1];
9 let jwt_b = &args[2];
10 let msg = if args.len() > 3 { &args[3] } else { "hello" };
11 let user_id_a = decode_jwt_without_validation(jwt_a).unwrap().user_id;
12 let user_id_b = decode_jwt_without_validation(jwt_b).unwrap().user_id;
13
14 let participants = vec![
15 Participant {
16 user_id: user_id_a.to_string(),
17 role: "initiator".to_string(),
18 },
19 Participant {
20 user_id: user_id_b.to_string(),
21 role: "receiver".to_string(),
22 },
23 ];
24 let cl = CoLink::new(addr, jwt_a);
25 let task_id = cl
26 .run_task("greetings", msg.as_bytes(), &participants, true)
27 .await?;
28 println!(
29 "Task {} has been created, but it will remain in waiting status until the protocol starts.",
30 task_id
31 );
32
33 Ok(())
34}