termii_rust/common/token/
request.rs

1use 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}