termii_rust/common/token/
request.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize)]
4pub enum RequestTokenMessageType {
5 NUMERIC,
6 ALPHANUMERIC,
7}
8
9#[derive(Debug, Deserialize, Serialize)]
10pub enum RequestTokenPinType {
11 NUMERIC,
12 ALPHANUMERIC,
13}
14
15#[derive(Debug, Deserialize, Serialize)]
16pub enum RequestTokenChannel {
17 #[serde(rename = "generic")]
18 Generic,
19 #[serde(rename = "dnd")]
20 Dnd,
21 #[serde(rename = "whatsapp")]
22 Whatsapp,
23}
24
25#[derive(Debug, Deserialize, Serialize)]
26pub struct RequestTokenRequest {
27 pub message_type: RequestTokenMessageType,
28 pub to: String,
29 pub from: String,
30 pub channel: RequestTokenChannel,
31 pub pin_attempts: u8,
32 pub pin_time_to_live: usize,
33 pub pin_length: u8,
34 pub pin_placeholder: String,
35 pub message_text: String,
36 pub pin_type: RequestTokenPinType,
37 api_key: Option<String>,
38}
39
40impl RequestTokenRequest {
41 pub fn new(
42 message_type: RequestTokenMessageType,
43 to: String,
44 from: String,
45 channel: RequestTokenChannel,
46 pin_attempts: u8,
47 pin_time_to_live: usize,
48 pin_length: u8,
49 pin_placeholder: String,
50 message_text: String,
51 pin_type: RequestTokenPinType,
52 ) -> RequestTokenRequest {
53 RequestTokenRequest {
54 message_type,
55 to,
56 from,
57 channel,
58 pin_attempts,
59 pin_time_to_live,
60 pin_length,
61 pin_placeholder,
62 message_text,
63 pin_type,
64 api_key: None,
65 }
66 }
67
68 pub(crate) fn set_api_key(&mut self, api_key: &str) {
69 self.api_key = Some(api_key.to_string());
70 }
71}
72
73#[derive(Debug, Serialize, Deserialize)]
74pub struct RequestTokenResponse {
75 #[serde(rename = "pinId")]
76 pub pin_id: String,
77 pub to: String,
78 #[serde(rename = "smsStatus")]
79 pub sms_status: String,
80}