diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 13:12:32 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 13:12:32 +0100 |
| commit | c01c8716de4a91e4c60f61cf0bb6eaeca5cbf619 (patch) | |
| tree | 0200d799a125c3aa9b85cfe5453c645c05fbb7e8 /src/slack.rs | |
| parent | a6fd44ae860ce48b6a7979a2c8b380c11fa7168e (diff) | |
| download | kodapa-c01c8716de4a91e4c60f61cf0bb6eaeca5cbf619.tar.gz | |
refactor to new files
Diffstat (limited to 'src/slack.rs')
| -rw-r--r-- | src/slack.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/slack.rs b/src/slack.rs new file mode 100644 index 0000000..40e465c --- /dev/null +++ b/src/slack.rs @@ -0,0 +1,39 @@ +use slack_api as slack; +use tokio::sync::mpsc; + +pub async fn handle( + token: Option<String>, + sender: mpsc::UnboundedSender<String>, + _receiver: mpsc::UnboundedReceiver<String>, +) { + println!("Setting up Slack"); + + let token = std::env::var("SLACK_API_TOKEN") + .unwrap_or(token.unwrap()); + let client = slack::default_client().unwrap(); + + let request = slack::rtm::StartRequest::default(); + let response = slack::rtm::start(&client, + &token, + &request).await; + + if let Ok(response) = response { + if let Some(channels) = response.channels { + let channel_names = channels + .iter() + .filter_map(|c| c.name.as_ref()) + .collect::<Vec<_>>(); + sender.send(format!("Got channels {:?}", channel_names).to_string()).unwrap(); + } + + if let Some(users) = response.users { + let user_names = users + .iter() + .filter_map(|u| u.name.as_ref()) + .collect::<Vec<_>>(); + sender.send(format!("Got users {:?}", user_names).to_string()).unwrap(); + } + } else { //TODO NotAuth etc + println!("{:?}", response) + } +} |
