messagebird_async/sms/parameter/
view.rs

1use super::*;
2
3use std::fmt;
4use std::string::ToString;
5
6/// QuerySend is an object that can be passed on to MessageBird API to trigger sending a SMS
7#[derive(Debug, Serialize, Eq, PartialEq)]
8pub struct ViewParameters {
9    #[serde(rename = "id")]
10    identifier: Identifier,
11}
12
13impl ViewParameters {
14    pub fn new<T>(id: T) -> Self
15    where
16        T: Into<Identifier>,
17    {
18        Self {
19            identifier: id.into(),
20        }
21    }
22
23    fn id(&self) -> &Identifier {
24        &self.identifier
25    }
26}
27
28impl fmt::Display for ViewParameters {
29    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
30        let base = String::from("https://rest.messagebird.com/messages");
31        //let query = serde_url_params::to_string(self).unwrap();
32        let query = self.id().to_string();
33        write!(f, "{}/{}", base, query)
34    }
35}
36
37impl Query for ViewParameters {
38    fn uri(&self) -> hyper::Uri {
39        let uri: hyper::Uri = self.to_string().parse().unwrap();
40        uri
41    }
42}
43
44#[cfg(test)]
45mod tests {
46
47    use super::*;
48    #[test]
49    fn query_view() {
50        let url_params = ViewParameters::new(Identifier::new("someid".to_string()));
51        println!("view obj {:?}", url_params);
52        let url_params_str = serde_url_params::to_string(&url_params).unwrap();
53        println!("view params are \"{}\"", url_params_str);
54        assert_eq!(
55            url_params.to_string(),
56            "https://rest.messagebird.com/messages/someid".to_string()
57        );
58    }
59}