diff --git a/src/clients/supervisor_client.rs b/src/clients/supervisor_client.rs index 6da18b2..7d48561 100644 --- a/src/clients/supervisor_client.rs +++ b/src/clients/supervisor_client.rs @@ -104,6 +104,10 @@ impl SupervisorClient { Ok(BASE64_STANDARD.encode(s.as_bytes())) } + fn encode_topic(topic: &[u8]) -> String { + BASE64_STANDARD.encode(topic) + } + fn extract_message_id_from_result(result: &Value) -> Option { // Two possibilities per Mycelium spec oneOf: // - PushMessageResponseId: { "id": "0123456789abcdef" } @@ -120,7 +124,12 @@ impl SupervisorClient { let payload_b64 = Self::encode_payload(&inner)?; let result = self .mycelium - .push_message(&self.destination, &self.topic, &payload_b64, None) + .push_message( + &self.destination, + &Self::encode_topic(self.topic.as_bytes()), + &payload_b64, + None, + ) .await?; if let Some(id) = MyceliumClient::extract_message_id_from_result(&result) {