Page MenuHomePhabricator

D9314.id31524.diff
No OneTemporary

D9314.id31524.diff

diff --git a/shared/tunnelbroker_messages/src/messages/message_to_device.rs b/shared/tunnelbroker_messages/src/messages/message_to_device.rs
new file mode 100644
--- /dev/null
+++ b/shared/tunnelbroker_messages/src/messages/message_to_device.rs
@@ -0,0 +1,30 @@
+// Messages sent between Tunnelbroker and a device via WebSocket
+
+use serde::{Deserialize, Serialize};
+
+#[derive(Serialize, Deserialize, PartialEq, Debug)]
+#[serde(tag = "type", rename_all = "camelCase")]
+pub struct MessageToDevice {
+ #[serde(rename = "deviceID")]
+ pub device_id: String,
+ pub payload: String,
+}
+
+#[cfg(test)]
+mod message_to_device_tests {
+ use super::*;
+
+ #[test]
+ fn test_message_to_device_deserialization() {
+ let example_payload = r#"{
+ "type": "MessageToDevice",
+ "deviceID": "alice",
+ "payload": "message from Bob"
+ }"#;
+
+ let request =
+ serde_json::from_str::<MessageToDevice>(example_payload).unwrap();
+ assert_eq!(request.device_id, "alice");
+ assert_eq!(request.payload, "message from Bob");
+ }
+}
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,8 +1,10 @@
// Messages sent between Tunnelbroker and a device
pub mod keys;
+pub mod message_to_device;
pub mod session;
pub use keys::*;
+pub use message_to_device::*;
pub use session::*;
use serde::{Deserialize, Serialize};
@@ -12,4 +14,5 @@
pub enum Messages {
RefreshKeysRequest(RefreshKeyRequest),
ConnectionInitializationMessage(ConnectionInitializationMessage),
+ MessageToDevice(MessageToDevice),
}

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 20, 3:19 AM (11 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2144659
Default Alt Text
D9314.id31524.diff (1 KB)

Event Timeline