messagebird_async/sms/parameter/
view.rs1use super::*;
2
3use std::fmt;
4use std::string::ToString;
5
6#[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 = 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}