1use super::*;
2
3#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
9pub struct Links {
10 first: Option<String>,
11 previous: Option<String>,
12 next: Option<String>,
13 last: Option<String>,
14}
15
16#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
24pub struct MessageList {
25 #[serde(rename = "offset")]
26 offset: usize,
27 #[serde(rename = "limit")]
28 limit: usize,
29 #[serde(rename = "count")]
30 count: usize,
31 #[serde(rename = "totalCount")]
32 available: usize,
33 #[serde(rename = "links")]
34 links: Option<Links>,
35 #[serde(rename = "items")]
36 messages: Vec<Message>,
37}
38
39#[cfg(test)]
40mod test {
41 use super::*;
42
43 static RAW_NONE: &str = r#"
44{
45 "offset": 15,
46 "limit": 99,
47 "count": 0,
48 "totalCount": 0,
49 "links": {
50 "first": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt",
51 "previous": null,
52 "next": null,
53 "last": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt"
54 },
55 "items": [
56 ]
57}
58 "#;
59
60 static RAW_ONE: &str = r#"
61{
62 "offset": 0,
63 "limit": 20,
64 "count": 1,
65 "totalCount": 1,
66 "links": {
67 "first": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt",
68 "previous": null,
69 "next": null,
70 "last": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt"
71 },
72 "items": [
73 {
74 "id": "4782ca7d6b6845ffa5c7ba5222a72e59",
75 "href": "https://rest.messagebird.com/messages/4782ca7d6b6845ffa5c7ba5222a72e59",
76 "direction": "mt",
77 "type": "sms",
78 "originator": "+497777777",
79 "body": "fun",
80 "reference": null,
81 "validity": null,
82 "gateway": 10,
83 "typeDetails": {},
84 "datacoding": "plain",
85 "mclass": 1,
86 "scheduledDatetime": null,
87 "createdDatetime": "2018-10-07T09:34:30+00:00",
88 "recipients": {
89 "totalCount": 1,
90 "totalSentCount": 1,
91 "totalDeliveredCount": 1,
92 "totalDeliveryFailedCount": 0,
93 "items": [
94 {
95 "recipient": 49333333,
96 "originator": null,
97 "status": "delivered",
98 "statusDatetime": "2018-10-07T09:34:36+00:00"
99 }
100 ]
101 }
102 }
103 ]
104}
105 "#;
106
107 static RAW_MULTI: &str = r#"
108{
109 "offset": 0,
110 "limit": 20,
111 "count": 7,
112 "totalCount": 7,
113 "links": {
114 "first": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt",
115 "previous": null,
116 "next": null,
117 "last": "https://rest.messagebird.com/messages/?offset=0&recipient=49333333&direction=mt"
118 },
119 "items": [
120 {
121 "id": "4782ca7d6b6845ffa5c7ba5222a72e59",
122 "href": "https://rest.messagebird.com/messages/4782ca7d6b6845ffa5c7ba5222a72e59",
123 "direction": "mt",
124 "type": "sms",
125 "originator": "+497777777",
126 "body": "fun",
127 "reference": null,
128 "validity": null,
129 "gateway": 10,
130 "typeDetails": {},
131 "datacoding": "plain",
132 "mclass": 1,
133 "scheduledDatetime": null,
134 "createdDatetime": "2018-10-07T09:34:30+00:00",
135 "recipients": {
136 "totalCount": 1,
137 "totalSentCount": 1,
138 "totalDeliveredCount": 1,
139 "totalDeliveryFailedCount": 0,
140 "items": [
141 {
142 "recipient": 49333333,
143 "originator": null,
144 "status": "delivered",
145 "statusDatetime": "2018-10-07T09:34:36+00:00"
146 }
147 ]
148 }
149 },
150 {
151 "id": "fc9c4b7f3fe1472e95420b203baf8759",
152 "href": "https://rest.messagebird.com/messages/fc9c4b7f3fe1472e95420b203baf8759",
153 "direction": "mt",
154 "type": "sms",
155 "originator": "+497777777",
156 "body": "fun",
157 "reference": null,
158 "validity": null,
159 "gateway": 10,
160 "typeDetails": {},
161 "datacoding": "plain",
162 "mclass": 1,
163 "scheduledDatetime": null,
164 "createdDatetime": "2018-09-26T17:51:12+00:00",
165 "recipients": {
166 "totalCount": 1,
167 "totalSentCount": 1,
168 "totalDeliveredCount": 1,
169 "totalDeliveryFailedCount": 0,
170 "items": [
171 {
172 "recipient": 49333333,
173 "originator": null,
174 "status": "delivered",
175 "statusDatetime": "2018-09-26T17:51:17+00:00"
176 }
177 ]
178 }
179 },
180 {
181 "id": "159995298a6842488a874bd8ab1fa48c",
182 "href": "https://rest.messagebird.com/messages/159995298a6842488a874bd8ab1fa48c",
183 "direction": "mt",
184 "type": "sms",
185 "originator": "+497777777",
186 "body": "fun",
187 "reference": null,
188 "validity": null,
189 "gateway": 10,
190 "typeDetails": {},
191 "datacoding": "plain",
192 "mclass": 1,
193 "scheduledDatetime": null,
194 "createdDatetime": "2018-09-25T23:13:50+00:00",
195 "recipients": {
196 "totalCount": 1,
197 "totalSentCount": 1,
198 "totalDeliveredCount": 1,
199 "totalDeliveryFailedCount": 0,
200 "items": [
201 {
202 "recipient": 49333333,
203 "originator": null,
204 "status": "delivered",
205 "statusDatetime": "2018-09-25T23:13:55+00:00"
206 }
207 ]
208 }
209 },
210 {
211 "id": "8c67231711024c66ac0b5e41504d41ee",
212 "href": "https://rest.messagebird.com/messages/8c67231711024c66ac0b5e41504d41ee",
213 "direction": "mt",
214 "type": "sms",
215 "originator": "YourName",
216 "body": "This",
217 "reference": null,
218 "validity": null,
219 "gateway": 10,
220 "typeDetails": {},
221 "datacoding": "plain",
222 "mclass": 1,
223 "scheduledDatetime": null,
224 "createdDatetime": "2018-09-25T22:36:42+00:00",
225 "recipients": {
226 "totalCount": 1,
227 "totalSentCount": 1,
228 "totalDeliveredCount": 1,
229 "totalDeliveryFailedCount": 0,
230 "items": [
231 {
232 "recipient": 49333333,
233 "originator": null,
234 "status": "delivered",
235 "statusDatetime": "2018-09-25T22:42:06+00:00"
236 }
237 ]
238 }
239 },
240 {
241 "id": "a5473cb63a7b49e3a0a65f090e7861f6",
242 "href": "https://rest.messagebird.com/messages/a5473cb63a7b49e3a0a65f090e7861f6",
243 "direction": "mt",
244 "type": "sms",
245 "originator": "YourName",
246 "body": "This is a test message",
247 "reference": null,
248 "validity": null,
249 "gateway": 10,
250 "typeDetails": {},
251 "datacoding": "plain",
252 "mclass": 1,
253 "scheduledDatetime": null,
254 "createdDatetime": "2018-09-25T22:20:04+00:00",
255 "recipients": {
256 "totalCount": 1,
257 "totalSentCount": 1,
258 "totalDeliveredCount": 1,
259 "totalDeliveryFailedCount": 0,
260 "items": [
261 {
262 "recipient": 49333333,
263 "originator": null,
264 "status": "delivered",
265 "statusDatetime": "2018-09-25T22:42:31+00:00"
266 }
267 ]
268 }
269 },
270 {
271 "id": "31bb3bce954b4bdba0e8b5716ed4ac25",
272 "href": "https://rest.messagebird.com/messages/31bb3bce954b4bdba0e8b5716ed4ac25",
273 "direction": "mt",
274 "type": "sms",
275 "originator": "YourName",
276 "body": "This is a test message",
277 "reference": null,
278 "validity": null,
279 "gateway": 10,
280 "typeDetails": {},
281 "datacoding": "plain",
282 "mclass": 1,
283 "scheduledDatetime": null,
284 "createdDatetime": "2018-09-25T22:19:42+00:00",
285 "recipients": {
286 "totalCount": 1,
287 "totalSentCount": 1,
288 "totalDeliveredCount": 1,
289 "totalDeliveryFailedCount": 0,
290 "items": [
291 {
292 "recipient": 49333333,
293 "originator": null,
294 "status": "delivered",
295 "statusDatetime": "2018-09-25T22:42:04+00:00"
296 }
297 ]
298 }
299 },
300 {
301 "id": "aabcca29aa4c45e0963e47e713a073e3",
302 "href": "https://rest.messagebird.com/messages/aabcca29aa4c45e0963e47e713a073e3",
303 "direction": "mt",
304 "type": "sms",
305 "originator": "test",
306 "body": "This is a test message",
307 "reference": null,
308 "validity": null,
309 "gateway": 10,
310 "typeDetails": {},
311 "datacoding": "plain",
312 "mclass": 1,
313 "scheduledDatetime": null,
314 "createdDatetime": "2018-09-03T00:41:26+00:00",
315 "recipients": {
316 "totalCount": 1,
317 "totalSentCount": 1,
318 "totalDeliveredCount": 1,
319 "totalDeliveryFailedCount": 0,
320 "items": [
321 {
322 "recipient": 49333333,
323 "originator": null,
324 "status": "delivered",
325 "statusDatetime": "2018-09-03T00:41:33+00:00"
326 }
327 ]
328 }
329 }
330 ]
331}
332 "#;
333
334 deser_roundtrip!(message_list_none_deser, MessageList, RAW_NONE);
335 }