Page MenuHomePhabricator

D9575.diff
No OneTemporary

D9575.diff

diff --git a/shared/tunnelbroker_messages/src/messages/message_receive_confirmation.rs b/shared/tunnelbroker_messages/src/messages/message_receive_confirmation.rs
new file mode 100644
--- /dev/null
+++ b/shared/tunnelbroker_messages/src/messages/message_receive_confirmation.rs
@@ -0,0 +1,32 @@
+//! Message sent from WebSocket client to Tunnelbroker to inform that message
+//! was processed, and can be deleted from DDB.
+
+use serde::{Deserialize, Serialize};
+
+#[derive(Serialize, Deserialize, PartialEq, Debug)]
+#[serde(tag = "type")]
+pub struct MessageReceiveConfirmation {
+ #[serde(rename = "messageIDs")]
+ pub message_ids: Vec<String>,
+}
+
+#[cfg(test)]
+mod receive_confirmation_tests {
+ use super::*;
+
+ #[test]
+ fn test_receive_confirmation_deserialization() {
+ let example_payload = r#"{
+ "type": "MessageToDeviceRequestStatus",
+ "messageIDs": ["id123", "id456"]
+ }"#;
+
+ let request =
+ serde_json::from_str::<MessageReceiveConfirmation>(example_payload)
+ .unwrap();
+
+ let expected_ids = vec!["id123".to_string(), "id456".to_string()];
+
+ assert_eq!(request.message_ids, expected_ids);
+ }
+}
diff --git a/shared/tunnelbroker_messages/src/messages/mod.rs b/shared/tunnelbroker_messages/src/messages/mod.rs
--- a/shared/tunnelbroker_messages/src/messages/mod.rs
+++ b/shared/tunnelbroker_messages/src/messages/mod.rs
@@ -1,12 +1,14 @@
//! Messages sent between Tunnelbroker and a device.
pub mod keys;
+pub mod message_receive_confirmation;
pub mod message_to_device;
pub mod message_to_device_request;
pub mod message_to_device_request_status;
pub mod session;
pub use keys::*;
+pub use message_receive_confirmation::*;
pub use message_to_device::*;
pub use message_to_device_request::*;
pub use message_to_device_request_status::*;
@@ -25,4 +27,5 @@
MessageToDeviceRequestStatus(MessageToDeviceRequestStatus),
MessageToDeviceRequest(MessageToDeviceRequest),
MessageToDevice(MessageToDevice),
+ MessageReceiveConfirmation(MessageReceiveConfirmation),
}

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 1:24 AM (20 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2247229
Default Alt Text
D9575.diff (2 KB)

Event Timeline