libsignal_service/websocket/
sender.rs1use crate::{
2 sender::{OutgoingPushMessages, SendMessageResponse},
3 unidentified_access::UnidentifiedAccess,
4 utils::BASE64_RELAXED,
5};
6
7use super::*;
8use base64::Engine;
9
10impl SignalWebSocket {
11 pub async fn send_messages(
12 &mut self,
13 messages: OutgoingPushMessages,
14 ) -> Result<SendMessageResponse, ServiceError> {
15 let request = WebSocketRequestMessage::new(Method::PUT)
16 .path(format!(
17 "/v1/messages/{}",
18 messages.destination.service_id_string()
19 ))
20 .json(&messages)?;
21 self.request_json(request).await
22 }
23
24 pub async fn send_messages_unidentified(
25 &mut self,
26 messages: OutgoingPushMessages,
27 access: &UnidentifiedAccess,
28 ) -> Result<SendMessageResponse, ServiceError> {
29 let request = WebSocketRequestMessage::new(Method::PUT)
30 .path(format!(
31 "/v1/messages/{}",
32 messages.destination.service_id_string()
33 ))
34 .header(
35 "Unidentified-Access-Key",
36 BASE64_RELAXED.encode(&access.key),
37 )
38 .json(&messages)?;
39 self.request_json(request).await
40 }
41}