signald_rust/
signaldrequest.rs1use serde::Serialize;
2
3#[derive(Serialize, Default, Clone)]
6pub struct SignaldRequest {
7 #[serde(rename = "type")]
8 pub typ: String,
9 pub username: String,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub id: Option<String>,
12 #[serde(rename = "messageBody", skip_serializing_if = "Option::is_none")]
13 pub message_body: Option<String>,
14 #[serde(rename = "recipientNumber", skip_serializing_if = "Option::is_none")]
15 pub recipient_number: Option<String>,
16 #[serde(rename = "recipientGroupId",skip_serializing_if = "Option::is_none")]
17 pub recipient_group_id: Option<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub voice: Option<bool>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub code: Option<String>,
22 #[serde(rename = "deviceName", skip_serializing_if = "Option::is_none")]
23 pub device_name: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub attachment_filenames: Option<Vec<String>>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub quote: Option<String>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub uri: Option<String>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub group_name: Option<String>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub members: Option<Vec<String>>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub avatar: Option<String>,
36}
37impl SignaldRequest {
38 pub fn to_json_string(&self) -> String {
40 serde_json::to_string(self).unwrap()
41 }
42}
43
44pub struct SignaldRequestBuilder {
45 request: SignaldRequest
46}
47impl SignaldRequestBuilder {
48 pub fn new() -> SignaldRequestBuilder {
49 SignaldRequestBuilder {
50 request: Default::default(),
51 }
52 }
53
54 pub fn set_type(&mut self, typ: String) {
55 self.request.typ = typ;
56 }
57
58 pub fn set_username(&mut self, username: String) {
59 self.request.username = username;
60 }
61
62 pub fn set_recipient_number(&mut self, recipient_number: String) {
63 self.request.recipient_number = Some(recipient_number);
64 }
65
66 pub fn set_message_body(&mut self, message_body: String) {
67 self.request.message_body = Some(message_body);
68 }
69
70 pub fn set_id(&mut self, id: String) {
71 self.request.id = Some(id);
72 }
73
74 pub fn build(&self) -> SignaldRequest {
77 self.request.clone()
78 }
79}