diff --git a/.gitignore b/.gitignore index 3ff4fada..287ebdb2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ # Ignore environemnt variables .env +cassete/*.yml diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..aae48224 --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,39 @@ +require_relative 'recipient' +require 'httparty' +require 'dotenv' + +Dotenv.load + +module SlackCli + + class Channel < Recipient + + attr_reader :slack_id, :name, :topic, :member_count + + def initialize (slack_id:, name:, topic:, member_count:) + super(slack_id, name) + @topic = topic + @member_count = member_count + end + + def details + return [{"slack_id" => slack_id,"name" => name,"topic" => topic, "member_count" => member_count }] + end + + def self.create_a_channel(channel_name) + url = "https://slack.com/api/channels.create" + param = {token: ENV["SLACK_BOT_TOKEN"],name: channel_name} + new_channel = HTTParty.post(url, query: param) + return new_channel.code + end + + def self.list_all + url = "https://slack.com/api/conversations.list" + param = {token: ENV["SLACK_BOT_TOKEN"]} + result = self.get(url, param) + channel_list = result["channels"].map { |channel| SlackCli::Channel.new(slack_id: channel["id"], name: channel["name"], topic: channel["topic"]["value"], member_count: channel["num_members"]) } + return channel_list + end + + end +end \ No newline at end of file diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..67a70f5c --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,41 @@ + +module SlackCli + + class Recipient + + attr_accessor :slack_id, :name + + def initialize (slack_id, name) + @slack_id = slack_id + @name = name + end + + def send_message(message) + url = "https://slack.com/api/chat.postMessage" + recipient = self.slack_id + token = ENV["SLACK_BOT_TOKEN"] + message = HTTParty.post(url, query: {token: token, channel: recipient, text: message}) + return message["ok"] && message.code + end + + def self.get(url, params) + return HTTParty.get(url, query: params) + end + + def self.list_all + raise SlackAPIError, "implement in user or channel" + end + + def details + raise SlackAPIError, "implement in user or channel" + end + + end + + + class SlackAPIError < StandardError + end + + +end + diff --git a/lib/slack.rb b/lib/slack.rb index 8a0b659b..17d13a26 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,12 +1,78 @@ #!/usr/bin/env ruby +require 'httparty' +require 'dotenv' +require_relative 'workspace' +require 'table_print' + +Dotenv.load def main + workspace = SlackCli::Workspace.new(users: SlackCli::User.list_all,channels: SlackCli::Channel.list_all,selected: nil) puts "Welcome to the Ada Slack CLI!" - workspace = Workspace.new - - # TODO project + option = ' ' + while option != "quit" + puts "What would you like to do?" + puts "options: list channels? list users? select user? select channel? list details? send message? quit?" + option = gets.chomp + unless option == "list channels" || option == "list users" || option == "select user" || option == "select channel" || option == "list details" || option == "send message" || option == "quit" + puts "wrong input! try again!" + puts "What would you like to do next?" + puts "options: list channels? list users? select user? select channel? list details? send message? quit?" + option = gets.chomp + end - puts "Thank you for using the Ada Slack CLI" + case option + when "list channels" + puts '' + tp workspace.channels.map{|channel| channel.details}, "slack_id", "name", "topic", "member_count" + puts '' + when "list users" + tp workspace.users.map{|user| user.details}, "slack_id", "name", "real_name", "status_text" ,"status_emoji" + when "select user" + workspace.select_user + when "select channel" + workspace.select_channel + when "send message" + workspace.send_message + when "list details" + if workspace.selected == nil || workspace.selected == '' + puts "no previously selected user or channel!" + puts "would you like to select a user or a channel? q to return to previous menu!" + selection = gets.chomp + if + selection == "q" + main + elsif + selection == "user" + workspace.select_user + puts "here are the details of user #{workspace.selected.name}" + workspace.show_details + elsif selection == "channel" + workspace.select_channel + puts "here are the details of channel #{workspace.selected.name}" + workspace.show_details + else + puts "wrong input! try again" + main + end + else + if + selection == "user" + puts "here are the details of user #{workspace.selected.name}" + workspace.show_details + elsif selection == "channel" + puts "here are the details of channel #{workspace.selected.name}" + workspace.show_details + else + puts "wrong input! try again" + main + end + end + when "quit" + puts "Thank you for using the Ada Slack CLI" + end + end end + main if __FILE__ == $PROGRAM_NAME \ No newline at end of file diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..9db0cdee --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,29 @@ +require_relative 'recipient' + +module SlackCli + + class User < Recipient + + attr_reader :slack_id, :name, :real_name, :status_text, :status_emoji + + def initialize(slack_id:, name:, real_name:, status_text:, status_emoji: nil) + super(slack_id, name) + @real_name = real_name + @status_text = status_text + @status_emoji = nil + end + + def details + return [{"slack_id" => slack_id,"name" => name ,"real_name" => real_name, "status_text" => status_text, "status_emoji" => status_emoji }] + end + + def self.list_all + url = "https://slack.com/api/users.list" + param = {token: ENV["SLACK_BOT_TOKEN"]} + result = self.get(url, param) + user_list = result["members"].map { |user| SlackCli::User.new(slack_id: user["id"], name: user["name"], real_name: user["real_name"], status_text: user["status_text"], status_emoji: user["status_emoji"]) } + return user_list + end + + end +end diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..f9bef0da --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,108 @@ +require_relative 'channel' +require_relative 'user' +require 'table_print' +require 'json' + + +module SlackCli + + class Workspace + + attr_reader :users, :channels + attr_accessor :selected + + def initialize(users:,channels:,selected:) + @users = SlackCli::User.list_all + @channels = SlackCli::Channel.list_all + @selected = nil + end + + def select_channel + puts "here's a list of all channels available!" + tp self.channels.map{|channel| channel}, "slack_id","name" + puts "which channel would you like to select? or q to return to the previous menu!" + selected_cli = gets.chomp + if selected_cli == "q" + main + else + selection = find_id_or_name(channels,selected_cli) + if selection == true + puts "you selected #{selected.name}" + else + puts "#{selected_cli} is not a valid user! try again!" + select_channel + end + end + end + + def select_user + puts "here's a list of all users available!" + tp self.users.map{|user| user}, "slack_id","name" + puts "which user would you like to select? or q to return to the previous menu!" + selected_cli = gets.chomp + if selected_cli == "q" + main + else + selection = find_id_or_name(users,selected_cli) + if selection == true + puts "you selected #{selected.name}" + else + puts "#{selected_cli} is not a valid user! try again!" + select_user + end + end + end + + def find_id_or_name(items,string) + items.each do |item| + if item.slack_id.include?(string.upcase) || item.name.include?(string.downcase) + @selected = item + return true + end + end + return false + end + + def show_details + tp selected.details + return selected.details + end + + def send_message + if @selected != nil + puts "would you like to send a message to the previously selected user/channel? type previous to continue or type q to return to the previous menu" + puts "or would you like to select a new user/channel?" + selection = gets.chomp + if selection == "q" + return + elsif selection == "user" + select_user + elsif selection == "channel" + select_channel + elsif selection == "previous" + puts "you'll be sending a message to #{selected.name}" + else + puts "wrong input! try again!" + end + else + puts "would you like to send a message to a user or a channel?" + selection = gets.chomp + if selection == "user" + select_user + elsif selection == "channel" + select_channel + else + puts "wrong input! try again!" + end + end + + puts "Type a message you'd like to send to #{selected.name}? or type q to return to the previous menu" + message = gets.chomp + if message == "q" || message == " " + return + else + selected.send_message(message) + end + end + end +end \ No newline at end of file diff --git a/test/cassettes/initialize.yml b/test/cassettes/initialize.yml new file mode 100644 index 00000000..43f30a6b --- /dev/null +++ b/test/cassettes/initialize.yml @@ -0,0 +1,345 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '2100' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:07 GMT + Server: + - Apache + X-Slack-Req-Id: + - 53cf6059622c117950d7d991c62824e7 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-fzpb + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c9cb74549b807d498500f04e1d4b8c7d.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - 41du2TVrgQkrQFMfpmjyP_sArIwIgflqegVeZipi5TFCM657KX4k7w== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV6AN59D3","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UUTJ4SJ74","team_id":"TV6AN59D3","name":"coapp","deleted":false,"color":"e0a729","real_name":"coapp","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"coapp","real_name_normalized":"coapp","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g9834be47962","api_app_id":"AV872DJF9","always_active":false,"bot_id":"BUUTK5P1R","image_24":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876936},{"id":"UUTRYS550","team_id":"TV6AN59D3","name":"space_suely_api_proje","deleted":false,"color":"5b89d5","real_name":"space_suely_api_proje","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_suely_api_proje","real_name_normalized":"space_suely_api_proje","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gcbff384117e","api_app_id":"AV664TRHS","always_active":false,"bot_id":"BUV5Z5P7D","first_name":"space_suely_api_proje","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584069583},{"id":"UUW7LV8TB","team_id":"TV6AN59D3","name":"haben7","deleted":false,"color":"9f69e7","real_name":"Haben","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Haben","real_name_normalized":"Haben","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"2d16485fda0d","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_original.png","is_custom_image":true,"first_name":"Haben","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553682},{"id":"UUW9P2RQ9","team_id":"TV6AN59D3","name":"space_hala_api_projec","deleted":false,"color":"684b6c","real_name":"space_hala_api_projec","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_hala_api_projec","real_name_normalized":"space_hala_api_projec","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gac80a1182e7","api_app_id":"AV872A207","always_active":false,"bot_id":"BV8JC2PSA","first_name":"space_hala_api_projec","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584655396},{"id":"UUYTL3L3T","team_id":"TV6AN59D3","name":"lolas_app","deleted":false,"color":"2b6836","real_name":"lolas_app","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lolas_app","real_name_normalized":"lolas_app","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g1b1a935022f","api_app_id":"AUXG0U9EX","always_active":false,"bot_id":"BVB6STV5L","image_24":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583973698},{"id":"UV6AV2NRW","team_id":"TV6AN59D3","name":"suely","deleted":false,"color":"e96699","real_name":"Suely + Barreto","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Suely + Barreto","real_name_normalized":"Suely Barreto","display_name":"Suely Barreto","display_name_normalized":"Suely + Barreto","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc5196ab439b","image_24":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875700},{"id":"UV6B4M5LM","team_id":"TV6AN59D3","name":"habenup","deleted":false,"color":"3c989f","real_name":"habenup","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"habenup","real_name_normalized":"habenup","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0d0df8101a1","api_app_id":"AV5SEU92Q","always_active":false,"bot_id":"BUUS8QK4K","image_24":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583875396},{"id":"UV6BANLCV","team_id":"TV6AN59D3","name":"icathyouyang","deleted":false,"color":"674b1b","real_name":"Cathy + Ouyang","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cathy + Ouyang","real_name_normalized":"Cathy Ouyang","display_name":"cathy","display_name_normalized":"cathy","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge90fc7be5b8","first_name":"Cathy","last_name":"Ouyang","image_24":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583887965},{"id":"UV868PVCP","team_id":"TV6AN59D3","name":"h.m.haddad","deleted":false,"color":"4bbe2e","real_name":"Hala + Haddad","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Hala + Haddad","real_name_normalized":"Hala Haddad","display_name":"Hala Haddad","display_name_normalized":"Hala + Haddad","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g89bde40202a","image_24":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875029},{"id":"UV8GPTF5L","team_id":"TV6AN59D3","name":"mslourdesllanes","deleted":false,"color":"e7392d","real_name":"Lola","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lola","real_name_normalized":"Lola","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"269edcbf1b61","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_original.png","is_custom_image":true,"first_name":"Lola","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553742}],"cache_ts":1584675907,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:02 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '723' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:08 GMT + Server: + - Apache + X-Slack-Req-Id: + - ee7e2a0264235d22eb10ae34f0a7941f + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-ipsk + X-Cache: + - Miss from cloudfront + Via: + - 1.1 9f81bea25ba920ede749daf13506a051.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - 3WW4cZ6ustyunqGUhXNeV2Ecc6qfU3s_Eg4GZLFj642bEqAXaiXbjQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUW7M14MP","name":"a-slack-command-line-app","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"a-slack-command-line-app","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Team + chat","creator":"UUW7LV8TB","last_set":1584060461},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":7},{"id":"CV5S4LJPN","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":8},{"id":"CV6AN643F","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":7},{"id":"CVDP09BL7","name":"halatests","is_channel":true,"is_group":false,"is_im":false,"created":1584081371,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"halatests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"C01067YP1T9","name":"hala_tests","is_channel":true,"is_group":false,"is_im":false,"created":1584402850,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"hala_tests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:03 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '2100' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:08 GMT + Server: + - Apache + X-Slack-Req-Id: + - c21a82d22dce630b40d882b3f0720afc + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-d99l + X-Cache: + - Miss from cloudfront + Via: + - 1.1 6ba3abdaa02208a6c3f49daf91689ad2.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - xlYvxMCIyB4GPYyel-kBxriz40QxLSP52NDLOxpDgfMtlsEikzLiXQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV6AN59D3","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UUTJ4SJ74","team_id":"TV6AN59D3","name":"coapp","deleted":false,"color":"e0a729","real_name":"coapp","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"coapp","real_name_normalized":"coapp","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g9834be47962","api_app_id":"AV872DJF9","always_active":false,"bot_id":"BUUTK5P1R","image_24":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876936},{"id":"UUTRYS550","team_id":"TV6AN59D3","name":"space_suely_api_proje","deleted":false,"color":"5b89d5","real_name":"space_suely_api_proje","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_suely_api_proje","real_name_normalized":"space_suely_api_proje","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gcbff384117e","api_app_id":"AV664TRHS","always_active":false,"bot_id":"BUV5Z5P7D","first_name":"space_suely_api_proje","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584069583},{"id":"UUW7LV8TB","team_id":"TV6AN59D3","name":"haben7","deleted":false,"color":"9f69e7","real_name":"Haben","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Haben","real_name_normalized":"Haben","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"2d16485fda0d","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_original.png","is_custom_image":true,"first_name":"Haben","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553682},{"id":"UUW9P2RQ9","team_id":"TV6AN59D3","name":"space_hala_api_projec","deleted":false,"color":"684b6c","real_name":"space_hala_api_projec","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_hala_api_projec","real_name_normalized":"space_hala_api_projec","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gac80a1182e7","api_app_id":"AV872A207","always_active":false,"bot_id":"BV8JC2PSA","first_name":"space_hala_api_projec","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584655396},{"id":"UUYTL3L3T","team_id":"TV6AN59D3","name":"lolas_app","deleted":false,"color":"2b6836","real_name":"lolas_app","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lolas_app","real_name_normalized":"lolas_app","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g1b1a935022f","api_app_id":"AUXG0U9EX","always_active":false,"bot_id":"BVB6STV5L","image_24":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583973698},{"id":"UV6AV2NRW","team_id":"TV6AN59D3","name":"suely","deleted":false,"color":"e96699","real_name":"Suely + Barreto","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Suely + Barreto","real_name_normalized":"Suely Barreto","display_name":"Suely Barreto","display_name_normalized":"Suely + Barreto","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc5196ab439b","image_24":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875700},{"id":"UV6B4M5LM","team_id":"TV6AN59D3","name":"habenup","deleted":false,"color":"3c989f","real_name":"habenup","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"habenup","real_name_normalized":"habenup","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0d0df8101a1","api_app_id":"AV5SEU92Q","always_active":false,"bot_id":"BUUS8QK4K","image_24":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583875396},{"id":"UV6BANLCV","team_id":"TV6AN59D3","name":"icathyouyang","deleted":false,"color":"674b1b","real_name":"Cathy + Ouyang","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cathy + Ouyang","real_name_normalized":"Cathy Ouyang","display_name":"cathy","display_name_normalized":"cathy","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge90fc7be5b8","first_name":"Cathy","last_name":"Ouyang","image_24":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583887965},{"id":"UV868PVCP","team_id":"TV6AN59D3","name":"h.m.haddad","deleted":false,"color":"4bbe2e","real_name":"Hala + Haddad","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Hala + Haddad","real_name_normalized":"Hala Haddad","display_name":"Hala Haddad","display_name_normalized":"Hala + Haddad","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g89bde40202a","image_24":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875029},{"id":"UV8GPTF5L","team_id":"TV6AN59D3","name":"mslourdesllanes","deleted":false,"color":"e7392d","real_name":"Lola","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lola","real_name_normalized":"Lola","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"269edcbf1b61","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_original.png","is_custom_image":true,"first_name":"Lola","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553742}],"cache_ts":1584675908,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:03 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '723' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:08 GMT + Server: + - Apache + X-Slack-Req-Id: + - 38a06e45f2c46a23baa18b45b2fb485b + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-rtkx + X-Cache: + - Miss from cloudfront + Via: + - 1.1 7b29c68a44c475b0442c0aba0da476c8.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - c57v2JCm5yqVb0BoMH6emX7ltPstSjGgASuHIRXHHd_qdORQZC2BPQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUW7M14MP","name":"a-slack-command-line-app","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"a-slack-command-line-app","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Team + chat","creator":"UUW7LV8TB","last_set":1584060461},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":7},{"id":"CV5S4LJPN","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":8},{"id":"CV6AN643F","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":7},{"id":"CVDP09BL7","name":"halatests","is_channel":true,"is_group":false,"is_im":false,"created":1584081371,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"halatests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"C01067YP1T9","name":"hala_tests","is_channel":true,"is_group":false,"is_im":false,"created":1584402850,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"hala_tests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:03 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/list_all.yml b/test/cassettes/list_all.yml new file mode 100644 index 00000000..a792bade --- /dev/null +++ b/test/cassettes/list_all.yml @@ -0,0 +1,165 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '723' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:17 GMT + Server: + - Apache + X-Slack-Req-Id: + - 2b68c45fd30d4a95e7cf7bbb3d264ff1 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-oy0b + X-Cache: + - Miss from cloudfront + Via: + - 1.1 bc24eca5e5d9f4acf2b3c88b0346cbb9.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - ABzDT-L3HFEa2K3mO_-54BD2PcMjTBqrUcitHREdwAFpIEs6u_64Bw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUW7M14MP","name":"a-slack-command-line-app","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"a-slack-command-line-app","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Team + chat","creator":"UUW7LV8TB","last_set":1584060461},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":7},{"id":"CV5S4LJPN","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":8},{"id":"CV6AN643F","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":7},{"id":"CVDP09BL7","name":"halatests","is_channel":true,"is_group":false,"is_im":false,"created":1584081371,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"halatests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"C01067YP1T9","name":"hala_tests","is_channel":true,"is_group":false,"is_im":false,"created":1584402850,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"hala_tests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:11 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '723' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:17 GMT + Server: + - Apache + X-Slack-Req-Id: + - 7e847f6c7189472a179cd7cddf202c39 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-9611 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 925e7b77d00fe09d3e904612516a8235.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - hY-4gXQ-oNkvD21op92R_kiecsUexZCjzspgDe8su0r-AIt0SIhN0g== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUW7M14MP","name":"a-slack-command-line-app","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"a-slack-command-line-app","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Team + chat","creator":"UUW7LV8TB","last_set":1584060461},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":7},{"id":"CV5S4LJPN","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":8},{"id":"CV6AN643F","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583874857,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUW7LV8TB","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUW7LV8TB","last_set":1583874857},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UUW7LV8TB","last_set":1583874857},"previous_names":[],"num_members":7},{"id":"CVDP09BL7","name":"halatests","is_channel":true,"is_group":false,"is_im":false,"created":1584081371,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"halatests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"C01067YP1T9","name":"hala_tests","is_channel":true,"is_group":false,"is_im":false,"created":1584402850,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"hala_tests","is_shared":false,"parent_conversation":null,"creator":"UUW9P2RQ9","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TV6AN59D3"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:12 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/lists_users.yml b/test/cassettes/lists_users.yml new file mode 100644 index 00000000..e01d7548 --- /dev/null +++ b/test/cassettes/lists_users.yml @@ -0,0 +1,93 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_BOT_TOKEN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '2101' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:11 GMT + Server: + - Apache + X-Slack-Req-Id: + - 4db63edfeaed0082835c702daab0bcd7 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-suv8 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4c7fd3c8d1d5afb1ce8ed03385580c2e.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - K_e0XRPNO4TpkooMgGw0cFTaTMpwlP8h2fYSB7cDsA-ipc961Z9GgA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV6AN59D3","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UUTJ4SJ74","team_id":"TV6AN59D3","name":"coapp","deleted":false,"color":"e0a729","real_name":"coapp","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"coapp","real_name_normalized":"coapp","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g9834be47962","api_app_id":"AV872DJF9","always_active":false,"bot_id":"BUUTK5P1R","image_24":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/9834be479621e684435385d06a68fab4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876936},{"id":"UUTRYS550","team_id":"TV6AN59D3","name":"space_suely_api_proje","deleted":false,"color":"5b89d5","real_name":"space_suely_api_proje","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_suely_api_proje","real_name_normalized":"space_suely_api_proje","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gcbff384117e","api_app_id":"AV664TRHS","always_active":false,"bot_id":"BUV5Z5P7D","first_name":"space_suely_api_proje","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/cbff384117e404619484490f671286a4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584069583},{"id":"UUW7LV8TB","team_id":"TV6AN59D3","name":"haben7","deleted":false,"color":"9f69e7","real_name":"Haben","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Haben","real_name_normalized":"Haben","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"2d16485fda0d","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_original.png","is_custom_image":true,"first_name":"Haben","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980919449347_2d16485fda0d4d48bd5b_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553682},{"id":"UUW9P2RQ9","team_id":"TV6AN59D3","name":"space_hala_api_projec","deleted":false,"color":"684b6c","real_name":"space_hala_api_projec","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_hala_api_projec","real_name_normalized":"space_hala_api_projec","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gac80a1182e7","api_app_id":"AV872A207","always_active":false,"bot_id":"BV8JC2PSA","first_name":"space_hala_api_projec","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ac80a1182e7e83f64e47eaddd6e5d43c.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1584655396},{"id":"UUYTL3L3T","team_id":"TV6AN59D3","name":"lolas_app","deleted":false,"color":"2b6836","real_name":"lolas_app","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lolas_app","real_name_normalized":"lolas_app","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g1b1a935022f","api_app_id":"AUXG0U9EX","always_active":false,"bot_id":"BVB6STV5L","image_24":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1b1a935022f7d9d25adf32a55f8867cc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583973698},{"id":"UV6AV2NRW","team_id":"TV6AN59D3","name":"suely","deleted":false,"color":"e96699","real_name":"Suely + Barreto","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Suely + Barreto","real_name_normalized":"Suely Barreto","display_name":"Suely Barreto","display_name_normalized":"Suely + Barreto","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc5196ab439b","image_24":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c5196ab439bfe4971d3c73a05c8fa1c4.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0025-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875700},{"id":"UV6B4M5LM","team_id":"TV6AN59D3","name":"habenup","deleted":false,"color":"3c989f","real_name":"habenup","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"habenup","real_name_normalized":"habenup","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0d0df8101a1","api_app_id":"AV5SEU92Q","always_active":false,"bot_id":"BUUS8QK4K","image_24":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0d0df8101a179b016861860af1c52b1b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583875396},{"id":"UV6BANLCV","team_id":"TV6AN59D3","name":"icathyouyang","deleted":false,"color":"674b1b","real_name":"Cathy + Ouyang","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cathy + Ouyang","real_name_normalized":"Cathy Ouyang","display_name":"cathy","display_name_normalized":"cathy","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge90fc7be5b8","first_name":"Cathy","last_name":"Ouyang","image_24":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e90fc7be5b8dde962600a5337332ef79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583887965},{"id":"UV868PVCP","team_id":"TV6AN59D3","name":"h.m.haddad","deleted":false,"color":"4bbe2e","real_name":"Hala + Haddad","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Hala + Haddad","real_name_normalized":"Hala Haddad","display_name":"Hala Haddad","display_name_normalized":"Hala + Haddad","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g89bde40202a","image_24":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/89bde40202a9d6f8442a98a5c0ce3cbf.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1583875029},{"id":"UV8GPTF5L","team_id":"TV6AN59D3","name":"mslourdesllanes","deleted":false,"color":"e7392d","real_name":"Lola","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lola","real_name_normalized":"Lola","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"269edcbf1b61","image_original":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_original.png","is_custom_image":true,"first_name":"Lola","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-10\/980891879539_269edcbf1b61f36df5a6_1024.png","status_text_canonical":"","team":"TV6AN59D3"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1584553742}],"cache_ts":1584675911,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:05 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/send_messages_to_channel.yml b/test/cassettes/send_messages_to_channel.yml new file mode 100644 index 00000000..2d70347f --- /dev/null +++ b/test/cassettes/send_messages_to_channel.yml @@ -0,0 +1,383 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=C01067YP1T9&text=testing%20new%20token&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '338' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:10 GMT + Server: + - Apache + X-Slack-Req-Id: + - 96d0d2aab555fec2486bf200395c0ca3 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-wexm + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c1c7bd66e338154bf556b9c8414debe9.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - DgJwpFS_HAJ9U5aSmWPY-yvzfL1I2EbqhbRKJtuHsLZj-WC1LX3FTg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"C01067YP1T9","ts":"1584675910.000300","message":{"bot_id":"BV8JC2PSA","type":"message","text":"testing + new token","user":"UUW9P2RQ9","ts":"1584675910.000300","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:05 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CVDP09BL7&text=testing%20new%20token!&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '338' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:13 GMT + Server: + - Apache + X-Slack-Req-Id: + - 2d40c5c0469321767efd9a9b89dc09d0 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-yfr8 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 38e44b0b4251fbfb70eb0f304e9558fb.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - bTcloq8S0M9dobQ-0p6m5NtExRQD9GJay3jsN-lcW_hZENmBdqoT0A== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CVDP09BL7","ts":"1584675913.001000","message":{"bot_id":"BV8JC2PSA","type":"message","text":"testing + new token!","user":"UUW9P2RQ9","ts":"1584675913.001000","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:08 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CVDP09BL7&text=if%20you%20can%20see%20this&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '339' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:15 GMT + Server: + - Apache + X-Slack-Req-Id: + - 65407a4d2b9af31c82c451ed6469d449 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-y4g4 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 964cf114e0992390e6487315faea90ac.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - nvoPdol3r54TmW7t4XREIJb6CJHOnWdlYVLNdPnZTvF9byLNYLy6DQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CVDP09BL7","ts":"1584675915.001100","message":{"bot_id":"BV8JC2PSA","type":"message","text":"if + you can see this","user":"UUW9P2RQ9","ts":"1584675915.001100","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:10 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CVDP09BL7&text=it%20means%20my%20token%20is%20working&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '344' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:16 GMT + Server: + - Apache + X-Slack-Req-Id: + - 98d27242498b60e2087b0ee60e214e12 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-45sp + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1bfde73e7d02732154f58c7e03609d09.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - uItUtN4QQDznf6YSHOIhRmYY-OQI_2WCZySR0ntgCXvIZkqwlOEDLw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CVDP09BL7","ts":"1584675916.001200","message":{"bot_id":"BV8JC2PSA","type":"message","text":"it + means my token is working","user":"UUW9P2RQ9","ts":"1584675916.001200","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:10 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CVDP09BL7&text=hi%20five!&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '333' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:16 GMT + Server: + - Apache + X-Slack-Req-Id: + - e1a6b5c5b7b3d1ab4f8e87655b6a0631 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-tqr5 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c9ce112dce78418fe2a7bbe639a34f78.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - K3EtuqT2OZdSIT6-sVtKyBen4jwfnZg5qHAPYbzIvk8jqc-iholZ2g== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CVDP09BL7","ts":"1584675916.001300","message":{"bot_id":"BV8JC2PSA","type":"message","text":"hi + five!","user":"UUW9P2RQ9","ts":"1584675916.001300","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:11 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/send_messages_to_user.yml b/test/cassettes/send_messages_to_user.yml new file mode 100644 index 00000000..2af3ca7c --- /dev/null +++ b/test/cassettes/send_messages_to_user.yml @@ -0,0 +1,381 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UV868PVCP&text=asdfas&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '330' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:09 GMT + Server: + - Apache + X-Slack-Req-Id: + - 25924b4a8ce1924f794a4124f08348b5 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-tlvl + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1bfde73e7d02732154f58c7e03609d09.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - IpZ3UUwGrmggQhs0cvs8UT_d6_3T6T0iBNt7wvrRQW3ZfGe3-AUymA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5U6KN7N","ts":"1584675909.000700","message":{"bot_id":"BV8JC2PSA","type":"message","text":"asdfas","user":"UUW9P2RQ9","ts":"1584675909.000700","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:04 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UV868PVCP&text=hi!&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '328' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:11 GMT + Server: + - Apache + X-Slack-Req-Id: + - 45b378b8d3a340f652dd1ab363232565 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-lxhd + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c8997576b0e59159a991d905466fd2d5.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - yIZrtCCXJhyagw8UN2a1bitVhVjCCXK112UEI0dhNbYPuXxltfQk9w== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5U6KN7N","ts":"1584675911.000800","message":{"bot_id":"BV8JC2PSA","type":"message","text":"hi!","user":"UUW9P2RQ9","ts":"1584675911.000800","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:06 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UV868PVCP&text=if%20you%20can%20see%20this&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '339' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:12 GMT + Server: + - Apache + X-Slack-Req-Id: + - 9d8b2c400e38842fdd5940608f653466 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-f54k + X-Cache: + - Miss from cloudfront + Via: + - 1.1 ca0f120555a3804748b7203f95b35195.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - fct7HSe4Gfi4EUQCxlK3LBTH7xZsdIUI_LYKAb4pIfF3BMJNQ3C1QQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5U6KN7N","ts":"1584675912.000900","message":{"bot_id":"BV8JC2PSA","type":"message","text":"if + you can see this","user":"UUW9P2RQ9","ts":"1584675912.000900","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:06 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UV868PVCP&text=it%20means%20my%20user.send%20method%20is%20working&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '349' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:12 GMT + Server: + - Apache + X-Slack-Req-Id: + - f3a34d6babb1540d12c07395c0e83e96 + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-v750 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4dbcbae01dbe8e38ad716ec4b04c5f39.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - l-svLpNXaKoim1x1E7obi3guLIetal0OviG8DySjU4KXmlJO-cEOgg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5U6KN7N","ts":"1584675912.001000","message":{"bot_id":"BV8JC2PSA","type":"message","text":"it + means my user.send method is working","user":"UUW9P2RQ9","ts":"1584675912.001000","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:07 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UV868PVCP&text=hi%20five!&token=SLACK_BOT_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '331' + Connection: + - keep-alive + Date: + - Fri, 20 Mar 2020 03:45:13 GMT + Server: + - Apache + X-Slack-Req-Id: + - f09f1031154b5657aa8b75777051f99b + X-Oauth-Scopes: + - channels:read,chat:write,users:read,channels:manage,chat:write.public + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-qel1 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4c7fd3c8d1d5afb1ce8ed03385580c2e.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - HIO50-C2 + X-Amz-Cf-Id: + - JfcNOwXb7fcDXN8ibkaYwRu-pXzBNQaZMkzF8rf_rdIehGdSr9ER-Q== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5U6KN7N","ts":"1584675913.001100","message":{"bot_id":"BV8JC2PSA","type":"message","text":"hi + five!","user":"UUW9P2RQ9","ts":"1584675913.001100","team":"TV6AN59D3","bot_profile":{"id":"BV8JC2PSA","deleted":false,"name":"Space + - Hala - API Project","updated":1584655396,"app_id":"AV872A207","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TV6AN59D3"}}}' + http_version: null + recorded_at: Fri, 20 Mar 2020 03:45:07 GMT +recorded_with: VCR 5.1.0 diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..d07c429f --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1,44 @@ +require_relative 'test_helper' +require 'httparty' +require 'dotenv' + +Dotenv.load + +describe "Channel Class" do + + describe "Channel instantiation" do + before do + @channel = SlackCli::Channel.new(slack_id: 1 ,name: "hala", topic: "ada", member_count: 2342) + @channel2 = SlackCli::Channel.new(slack_id: "CVDP09BL7" ,name: "halatests", topic: "ada", member_count: 1) + end + + it "is an instance of Channel" do + expect(@channel).must_be_kind_of SlackCli::Channel + end + + it "must list details of the channel" do + expect(@channel.details).must_equal [{"slack_id" => 1,"name" => "hala","topic" => "ada", "member_count" => 2342 }] + end + + it "can list all channels in the workspace" do + VCR.use_cassette("list all") do + CHANNELS_URL = "https://slack.com/api/conversations.list" + SLACK_BOT_TOKEN = ENV["SLACK_BOT_TOKEN"] + channels = HTTParty.get(CHANNELS_URL, query: {token: SLACK_BOT_TOKEN }) + + expect(SlackCli::Channel.list_all.length).must_equal 5 + end + end + + it "can send a message to a channel"do + VCR.use_cassette("send messages to channel") do + expect(@channel2.send_message("testing new token!")).must_equal true && 200 + expect(@channel2.send_message("if you can see this")).must_equal true && 200 + expect(@channel2.send_message("it means my token is working")).must_equal true && 200 + expect(@channel2.send_message("hi five!")).must_equal true && 200 + end + end + + + end +end diff --git a/test/recipient_test.rb b/test/recipient_test.rb new file mode 100644 index 00000000..e69de29b diff --git a/test/test_helper.rb b/test/test_helper.rb index 1fcf2bab..056673ca 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,8 +9,19 @@ require 'minitest/skip_dsl' require 'vcr' + + + Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new +require_relative '../lib/recipient' +require_relative '../lib/channel' +require_relative '../lib/user' +require_relative '../lib/workspace' +require 'dotenv' + +Dotenv.load + VCR.configure do |config| config.cassette_library_dir = "test/cassettes" config.hook_into :webmock @@ -25,5 +36,7 @@ } # Don't leave our token lying around in a cassette file. - + config.filter_sensitive_data("SLACK_BOT_TOKEN") do + ENV["SLACK_BOT_TOKEN"] + end end diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..eb7fc1f3 --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1,34 @@ +require_relative 'test_helper' + +describe "User Class" do + + describe "User instantiation" do + before do + @user = SlackCli::User.new(slack_id: "UV6BANLCV" ,name: "hala", real_name: "hala haddad", status_text: :AVAILABLE, status_emoji: nil) + @user2 = SlackCli::User.new(slack_id: "UV868PVCP" ,name: "hala", real_name: "hala haddad", status_text: :AVAILABLE, status_emoji: nil) + end + + it "is an instance of Channel" do + expect(@user).must_be_kind_of SlackCli::User + end + + it "must list details of the user" do + expect(@user.details).must_equal [{"slack_id" => "UV6BANLCV","name" => "hala","real_name" => "hala haddad", "status_text" => :AVAILABLE, "status_emoji" => nil }] + end + + it "can send a message to a user"do + VCR.use_cassette("send messages to user") do + expect(@user2.send_message("hi!")).must_equal true && 200 + expect(@user2.send_message("if you can see this")).must_equal true && 200 + expect(@user2.send_message("it means my user.send method is working")).must_equal true && 200 + expect(@user2.send_message("hi five!")).must_equal true && 200 + end + end + + it "can list all users"do + VCR.use_cassette("lists users") do + expect(SlackCli::User.list_all.length).must_equal 11 + end +end + end +end \ No newline at end of file diff --git a/test/workspace_test.rb b/test/workspace_test.rb new file mode 100644 index 00000000..ef2ea4b9 --- /dev/null +++ b/test/workspace_test.rb @@ -0,0 +1,110 @@ +require_relative 'test_helper' +require 'httparty' +require 'dotenv' +require 'stringio' +require 'table_print' + +Dotenv.load + +describe "workspace Class" do + + describe "Workspace instantiation" do + before do + VCR.use_cassette("initialize") do + @workspace = SlackCli::Workspace.new(users: SlackCli::User.list_all,channels: SlackCli::Channel.list_all,selected: nil) + end + end + + it "is an instance of Workspace" do + VCR.use_cassette("initialize") do + expect(@workspace).must_be_kind_of SlackCli::Workspace + end + end + + it "can list all channels in the workspace" do + VCR.use_cassette("list all channels") do + expect(@workspace.channels.length).must_equal 5 + end + end + + it "can list all users in the workspace" do + VCR.use_cassette("list all users") do + expect(@workspace.users.length).must_equal 11 + end + end + + it "can select a channel correctly" do + VCR.use_cassette("select channel") do + string_io = StringIO.new + string_io.puts 'CVDP09BL7' + string_io.rewind + $stdin = string_io + + + @workspace.select_channel + $stdin = STDIN + expect(@workspace.selected.name).must_equal "halatests" + end + end + + it "can select a user correctly" do + VCR.use_cassette("select user") do + string_io = StringIO.new + string_io.puts 'UV868PVCP' + string_io.rewind + $stdin = string_io + + + @workspace.select_user + $stdin = STDIN + expect(@workspace.selected.name).must_equal "h.m.haddad" + end + end + + it "must show details of a user or channel" do + VCR.use_cassette("show details") do + string_io = StringIO.new + string_io.puts 'UV868PVCP' + string_io.rewind + $stdin = string_io + + @workspace.select_user + $stdin = STDIN + expect(@workspace.show_details).must_equal @workspace.selected.details + end + end + + it "can send a message to a user" do + VCR.use_cassette("send messages to user") do + string_io = StringIO.new + string_io.puts 'user' + string_io.puts 'UV868PVCP' + string_io.puts 'asdfas' + string_io.rewind + $stdin = string_io + + + message = @workspace.send_message + $stdin = STDIN + expect(message).must_equal true && 200 + end + end + + it "can send a message to a channel" do + VCR.use_cassette("send messages to channel") do + string_io = StringIO.new + string_io.puts 'channel' + string_io.puts 'C01067YP1T9' + string_io.puts 'testing new token' + string_io.rewind + $stdin = string_io + + + message = @workspace.send_message + $stdin = STDIN + expect(message).must_equal true && 200 + end + end + + end +end \ No newline at end of file