(&self)
| 673 | } |
| 674 | |
| 675 | async fn send_join_event(&self) -> Result<()> { |
| 676 | trace!("Sending join event"); |
| 677 | |
| 678 | let ts: DateTime<Utc> = |
| 679 | helpers::get_rx_timestamp(&self.uplink_frame_set.rx_info_set).into(); |
| 680 | |
| 681 | let app = self.application.as_ref().unwrap(); |
| 682 | let dev = self.device.as_ref().unwrap(); |
| 683 | |
| 684 | let pl = integration_pb::JoinEvent { |
| 685 | deduplication_id: self.uplink_frame_set.uplink_set_id.to_string(), |
| 686 | time: Some(ts.into()), |
| 687 | device_info: self.device_info.clone(), |
| 688 | relay_rx_info: None, |
| 689 | dev_addr: self.dev_addr.as_ref().unwrap().to_string(), |
| 690 | join_server_context: if !self.js_session_key_id.is_empty() { |
| 691 | Some(common::JoinServerContext { |
| 692 | app_s_key: None, |
| 693 | session_key_id: self.js_session_key_id.clone(), |
| 694 | }) |
| 695 | } else if let Some(app_s_key) = &self.app_s_key { |
| 696 | if app_s_key.kek_label.is_empty() { |
| 697 | None |
| 698 | } else { |
| 699 | Some(common::JoinServerContext { |
| 700 | app_s_key: Some(common::KeyEnvelope { |
| 701 | kek_label: app_s_key.kek_label.clone(), |
| 702 | aes_key: app_s_key.aes_key.clone(), |
| 703 | }), |
| 704 | session_key_id: "".to_string(), |
| 705 | }) |
| 706 | } |
| 707 | } else { |
| 708 | None |
| 709 | }, |
| 710 | region_config_id: self.uplink_frame_set.region_config_id.clone(), |
| 711 | }; |
| 712 | |
| 713 | integration::join_event(app.id.into(), &dev.variables, &pl).await; |
| 714 | Ok(()) |
| 715 | } |
| 716 | |
| 717 | fn set_pr_start_ans_payload(&mut self) -> Result<()> { |
| 718 | trace!("Setting PRStartAnsPayload"); |
no test coverage detected