diff --git a/bin/map/src/main.rs b/bin/map/src/main.rs index a652ad4b0..27dfdcb14 100644 --- a/bin/map/src/main.rs +++ b/bin/map/src/main.rs @@ -158,25 +158,36 @@ async fn poll(client: Map, model: Arc) -> Result<()> { if reply.as_object().is_some() && !reply.as_object().unwrap().is_empty() { let nodes = reply.as_object().unwrap().get("nodes").unwrap(); - // todo: generalize this + // TODO: generalize this let node1 = &nodes[0]; - //let node2 = &nodes[1]; - //let node3 = &nodes[2]; + let node2 = &nodes[1]; + let node3 = &nodes[2]; // TODO: error handling - let infos = vec![NodeInfo { - id: node1["id"].to_string(), - connections: node1["connections"].as_u64().unwrap() as usize, - is_active: node1["is_active"].as_bool().unwrap(), - last_message: node1["message"].to_string(), - }]; - - //model.update(infos).await; + let infos = vec![ + NodeInfo { + id: node1["id"].to_string(), + connections: node1["connections"].as_u64().unwrap() as usize, + is_active: node1["is_active"].as_bool().unwrap(), + last_message: node1["message"].to_string(), + }, + NodeInfo { + id: node2["id"].to_string(), + connections: node2["connections"].as_u64().unwrap() as usize, + is_active: node2["is_active"].as_bool().unwrap(), + last_message: node2["message"].to_string(), + }, + NodeInfo { + id: node3["id"].to_string(), + connections: node3["connections"].as_u64().unwrap() as usize, + is_active: node3["is_active"].as_bool().unwrap(), + last_message: node3["message"].to_string(), + }, + ]; for node in infos { - model.id_list.node_id.lock().await.push(node.id); - //self.info_list.infos.lock().await.push(node.info); - //self.id_list. + model.info_list.infos.lock().await.push(node.clone()); + model.id_list.node_id.lock().await.push(node.clone().id); } } else { // TODO: error handling diff --git a/bin/map/src/model.rs b/bin/map/src/model.rs index 47d68f169..77650fabe 100644 --- a/bin/map/src/model.rs +++ b/bin/map/src/model.rs @@ -12,24 +12,11 @@ impl Model { Model { id_list, info_list } } - pub async fn update(self, node_vec: Vec) -> Result<()> { - for node in node_vec { - self.id_list.node_id.lock().await.push(node.id); - //self.info_list.infos.lock().await.push(node.info); - //self.id_list. + pub async fn update(self, infos: Vec) -> Result<()> { + for node in infos { + self.info_list.infos.lock().await.push(node.clone()); + self.id_list.node_id.lock().await.push(node.clone().id); } - //let ids = vec![node_vec[0].id.clone()]; - - //for id in ids { - // self.id_list.node_id.lock().await.push(id); - //} - - //let id_list = self.id_list; - - //for info in node_vec { - // self.info_list.infos.lock().await.push(info); - //} - //let info_list = self.info_list; Ok(()) } }