(&self)
| 930 | } |
| 931 | |
| 932 | async fn send_join_event(&self) -> Result<()> { |
| 933 | trace!("Sending join event"); |
| 934 | |
| 935 | let ts: DateTime<Utc> = |
| 936 | helpers::get_rx_timestamp(&self.uplink_frame_set.rx_info_set).into(); |
| 937 | |
| 938 | let app = self.application.as_ref().unwrap(); |
| 939 | let dev = self.device.as_ref().unwrap(); |
| 940 | |
| 941 | let pl = integration_pb::JoinEvent { |
| 942 | deduplication_id: self.uplink_frame_set.uplink_set_id.to_string(), |
| 943 | time: Some(ts.into()), |
| 944 | device_info: self.device_info.clone(), |
| 945 | relay_rx_info: self.relay_rx_info.clone(), |
| 946 | dev_addr: dev.dev_addr.unwrap().to_string(), |
| 947 | join_server_context: if !self.js_session_key_id.is_empty() { |
| 948 | Some(common::JoinServerContext { |
| 949 | app_s_key: None, |
| 950 | session_key_id: hex::encode(&self.js_session_key_id), |
| 951 | }) |
| 952 | } else if let Some(app_s_key) = &self.app_s_key { |
| 953 | if app_s_key.kek_label.is_empty() { |
| 954 | None |
| 955 | } else { |
| 956 | Some(common::JoinServerContext { |
| 957 | app_s_key: Some(common::KeyEnvelope { |
| 958 | kek_label: app_s_key.kek_label.clone(), |
| 959 | aes_key: app_s_key.aes_key.clone(), |
| 960 | }), |
| 961 | session_key_id: "".into(), |
| 962 | }) |
| 963 | } |
| 964 | } else { |
| 965 | None |
| 966 | }, |
| 967 | region_config_id: self.uplink_frame_set.region_config_id.clone(), |
| 968 | }; |
| 969 | |
| 970 | integration::join_event(app.id.into(), &dev.variables, &pl).await; |
| 971 | Ok(()) |
| 972 | } |
| 973 | } |
no test coverage detected