#[macro_use]
extern crate log;
extern crate env_logger;
extern crate futures;
extern crate messagebird_async;
extern crate tokio_core;
use futures::future::Future;
use messagebird_async::errors::*;
use messagebird_async::sms;
use messagebird_async::sms::*;
fn main() -> Result<(), MessageBirdError> {
env_logger::init();
let msisdn_str = std::env::var("SMS_RECIPIENT".to_string())
.expect("SMS_RECIPIENT should contain the number without prefix");
let msisdn: Msisdn = Msisdn::from_str(msisdn_str.as_str())
.expect("SMS_RECIPIENT did not contain a valid number");
info!("example: listing all remote messages");
let q = sms::list::ListParameters::builder()
.with_direction(Direction::SendToMobile)
.with_destination(msisdn)
.skip(1)
.count(10)
.build();
let accesskey = AccessKey::from_env()?;
let fut = RequestMessageList::new(&q, &accesskey);
let fut = fut
.and_then(|msgs: MessageList| {
info!("{:?}", msgs);
futures::future::ok(())
})
.map_err(|e| {
debug!("err: {:?}", e);
e
});
let mut core = tokio_core::reactor::Core::new().unwrap();
core.run(fut.map(|_| ()))
}