use std::env;
const BOT_ACCESS_TOKEN: &str = "BOT_ACCESS_TOKEN";
const BOT_EMAIL: &str = "BOT_EMAIL";
#[tokio::main]
async fn main() {
let token = env::var(BOT_ACCESS_TOKEN)
.unwrap_or_else(|_| panic!("{} not specified in environment", BOT_ACCESS_TOKEN));
let bot_email = env::var(BOT_EMAIL)
.unwrap_or_else(|_| panic!("{} not specified in environment", BOT_EMAIL));
let webex = webex::Webex::new(token.as_str()).await;
let mut event_stream = webex.event_stream().await.expect("event stream");
while let Ok(event) = event_stream.next().await {
if event.activity_type() == webex::ActivityType::Message(webex::MessageActivity::Posted) {
if let Ok(msg) = webex
.get::<webex::Message>(&event.try_global_id().unwrap())
.await
{
match &msg.person_email {
Some(sender) if sender != bot_email.as_str() => {
let mut reply = webex::types::MessageOut::from(&msg);
reply.text = Some(format!("{}, you said: {}", sender, msg.text.unwrap()));
webex.send_message(&reply).await.unwrap();
}
_ => (),
}
}
}
}
}