termii_rust/async_impl/rest/switch/
switch.rs

1use std::sync::Arc;
2
3use crate::async_impl::{
4    http::client,
5    rest::switch::{Campaign, Messaging, Number, SenderID, Templates},
6};
7
8#[derive(Debug)]
9#[allow(dead_code)]
10pub struct Switch<'a> {
11    api_key: &'a str,
12    client: Arc<client::HttpClient>,
13    pub templates: Templates<'a>,
14    pub sender_id: SenderID<'a>,
15    pub campaign: Campaign<'a>,
16    pub number: Number<'a>,
17    pub messaging: Messaging<'a>,
18}
19
20impl<'a> Switch<'a> {
21    pub fn new(api_key: &str, client: Arc<client::HttpClient>) -> Switch {
22        let templates = Templates::new(&api_key, Arc::clone(&client));
23        let sender_id = SenderID::new(&api_key, Arc::clone(&client));
24        let campaign = Campaign::new(&api_key, Arc::clone(&client));
25        let number = Number::new(&api_key, Arc::clone(&client));
26        let messaging = Messaging::new(&api_key, Arc::clone(&client));
27
28        Switch {
29            api_key,
30            client,
31            templates,
32            sender_id,
33            campaign,
34            number,
35            messaging,
36        }
37    }
38}