diff --git a/services/identity/src/tunnelbroker.rs b/services/identity/src/tunnelbroker.rs --- a/services/identity/src/tunnelbroker.rs +++ b/services/identity/src/tunnelbroker.rs @@ -50,3 +50,25 @@ .await?, ) } + +pub async fn send_device_list_update(device_ids: &[&str]) -> Result<(), Error> { + let mut tunnelbroker_client = create_tunnelbroker_client().await?; + + let update = messages::IdentityDeviceListUpdated {}; + let payload = serde_json::to_string(&update).unwrap(); + + for &device_id in device_ids { + let request = MessageToDevice { + device_id: device_id.to_string(), + payload: payload.clone(), + }; + + let grpc_message = tonic::Request::new(request); + + tunnelbroker_client + .send_message_to_device(grpc_message) + .await?; + } + + Ok(()) +}