From 65127cc7a76375572607d95bedf6d58f8b19d13a Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Tue, 10 Mar 2020 17:46:33 -0700 Subject: [PATCH 01/25] slack authentication set up --- lib/slack.rb | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 8a0b659b..00f4787e 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,12 +1,27 @@ #!/usr/bin/env ruby -def main - puts "Welcome to the Ada Slack CLI!" - workspace = Workspace.new +require 'httparty' +require 'dotenv' - # TODO project +Dotenv.load - puts "Thank you for using the Ada Slack CLI" -end +URL = "https://slack.com/api/channels.list" -main if __FILE__ == $PROGRAM_NAME \ No newline at end of file +query_parameters = { + token: ENV['SLACK_API_TOKEN'] +} + +response = HTTParty.get(URL, query: query_parameters) + + + +# def main +# puts "Welcome to the Ada Slack CLI!" +# workspace = Workspace.new + +# # TODO project + +# puts "Thank you for using the Ada Slack CLI" +# end + +# main if __FILE__ == $PROGRAM_NAME \ No newline at end of file From 78991417961eff559468f2bdf7f26cb19f6d9122 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Tue, 10 Mar 2020 17:52:37 -0700 Subject: [PATCH 02/25] made loop to print out each channel --- lib/slack.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/slack.rb b/lib/slack.rb index 00f4787e..fdedf91d 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -13,6 +13,10 @@ response = HTTParty.get(URL, query: query_parameters) +response["channels"].each do |channel| + puts channel["name"] +end + # def main From dbe9e8b054c3775da5f88ed1accdf0a02316a071 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Tue, 10 Mar 2020 18:05:38 -0700 Subject: [PATCH 03/25] created workspace class with user and channel vars --- lib/workspace.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 lib/workspace.rb diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..31129d4f --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,10 @@ +class Workspace + + attr_reader :users, :channels + + def intialize + @users = [] + @channels = [] + + end +end \ No newline at end of file From 2c9ab14698da933992d686bfbf03278f4cc8db7b Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 14:57:02 -0700 Subject: [PATCH 04/25] slack cli menu input created --- lib/slack.rb | 64 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index fdedf91d..9a5f2d60 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -2,30 +2,66 @@ require 'httparty' require 'dotenv' +require 'table_print' +require_relative 'workspace' Dotenv.load -URL = "https://slack.com/api/channels.list" +def get_user_choice + puts "Welcome to the Ada Slack CLI!" + print "Please select one of the options: + (1) list users + (2) list channels + (3) quit + \n Selection: " -query_parameters = { - token: ENV['SLACK_API_TOKEN'] -} -response = HTTParty.get(URL, query: query_parameters) + action = gets.chomp -response["channels"].each do |channel| - puts channel["name"] + puts "" + + return action end +def main + # main code layout inspired by instructor solar system implementation + program_running = true + + while (program_running) + + user_choice = get_user_choice + case user_choice.downcase + when "list users" + puts "list users not implemented yet" + #TODO list all users in Slack workspace + # has username, real name, and Slack ID + + when "list channels" + #TODO list all channels + # include channel name, topic, member count, and Slack ID + url = "https://slack.com/api/channels.list" + workspace = Workspace.new + + query_parameters = { + token: ENV['SLACK_API_TOKEN'] + } -# def main -# puts "Welcome to the Ada Slack CLI!" -# workspace = Workspace.new + response = HTTParty.get(url, query: query_parameters) + + response["channels"].each do |channel| + puts channel["name"] + end + + when "quit" + program_running = false + puts "Thank you for using the Ada Slack CLI" + else + puts "Invalid selection. Please provide a valid action." + end + end +end -# # TODO project -# puts "Thank you for using the Ada Slack CLI" -# end -# main if __FILE__ == $PROGRAM_NAME \ No newline at end of file +main if __FILE__ == $PROGRAM_NAME \ No newline at end of file From 93c782e8cbd8b418532a95e6f2019e82b0201ead Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 15:01:54 -0700 Subject: [PATCH 05/25] required slack and workspace ruby files --- test/test_helper.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test_helper.rb b/test/test_helper.rb index 1fcf2bab..6f4e0bb6 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,6 +9,9 @@ require 'minitest/skip_dsl' require 'vcr' +require_relative '../lib/slack.rb' +require_relative '../lib/workspace.rb' + Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new VCR.configure do |config| From 5cd04b1eaeccb63fd01d94b722c27af7b1b0e1dd Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 17:44:42 -0700 Subject: [PATCH 06/25] base for list channels option completed --- lib/slack.rb | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 9a5f2d60..e7b71447 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,5 +1,4 @@ -#!/usr/bin/env ruby - +# !/usr/bin/env ruby require 'httparty' require 'dotenv' require 'table_print' @@ -27,17 +26,19 @@ def main # main code layout inspired by instructor solar system implementation program_running = true + + while (program_running) user_choice = get_user_choice case user_choice.downcase - when "list users" + when "list users", "1" puts "list users not implemented yet" #TODO list all users in Slack workspace # has username, real name, and Slack ID - when "list channels" + when "list channels", "2" #TODO list all channels # include channel name, topic, member count, and Slack ID url = "https://slack.com/api/channels.list" @@ -49,11 +50,18 @@ def main response = HTTParty.get(url, query: query_parameters) - response["channels"].each do |channel| + + + channels = response["channels"].map do |channel| puts channel["name"] + puts channel["topic"] + puts (channel["members"]).length + puts channel["id"] + # ["name"] end + - when "quit" + when "quit", "3" program_running = false puts "Thank you for using the Ada Slack CLI" else From 53117a44f4b47acce4054e47ecb51f2ca656ba6b Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 17:54:09 -0700 Subject: [PATCH 07/25] initial set up of classes --- lib/channel.rb | 3 +++ lib/user.rb | 3 +++ test/channel_test.rb | 1 + test/slack_test.rb | 2 ++ test/user_test.rb | 1 + test/workspace_test.rb | 1 + 6 files changed, 11 insertions(+) create mode 100644 lib/channel.rb create mode 100644 lib/user.rb create mode 100644 test/channel_test.rb create mode 100644 test/slack_test.rb create mode 100644 test/user_test.rb create mode 100644 test/workspace_test.rb diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..7655900f --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,3 @@ +class Channel + +end \ No newline at end of file diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..b38d91d6 --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,3 @@ +class User + +end \ No newline at end of file diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..2bac53cd --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1 @@ +require_relative 'test_helper' \ No newline at end of file diff --git a/test/slack_test.rb b/test/slack_test.rb new file mode 100644 index 00000000..ddf1a3da --- /dev/null +++ b/test/slack_test.rb @@ -0,0 +1,2 @@ +require_relative 'test_helper' + diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..2bac53cd --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1 @@ +require_relative 'test_helper' \ No newline at end of file diff --git a/test/workspace_test.rb b/test/workspace_test.rb new file mode 100644 index 00000000..2bac53cd --- /dev/null +++ b/test/workspace_test.rb @@ -0,0 +1 @@ +require_relative 'test_helper' \ No newline at end of file From 199da7cccb2cafaff5425260681eb5a3f9136d07 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 22:45:49 -0700 Subject: [PATCH 08/25] table print working --- lib/slack.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index e7b71447..4cb71f0f 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -51,15 +51,16 @@ def main response = HTTParty.get(url, query: query_parameters) - + # to do move this into recipient class channels = response["channels"].map do |channel| - puts channel["name"] - puts channel["topic"] - puts (channel["members"]).length - puts channel["id"] + {:name => channel["name"], + :topic => channel["topic"]["value"], + :member_count => (channel["members"]).length, + :slack_id => channel["id"]} # ["name"] end + tp channels when "quit", "3" program_running = false From 4b7307f8cb8a6c0a7d2bb1009a68dc099b39725d Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Thu, 12 Mar 2020 23:33:30 -0700 Subject: [PATCH 09/25] created list_channels method --- lib/workspace.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/workspace.rb b/lib/workspace.rb index 31129d4f..d75596d4 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -1,3 +1,6 @@ +require_relative 'channel' +require_relative 'user' + class Workspace attr_reader :users, :channels @@ -7,4 +10,34 @@ def intialize @channels = [] end + + def list_channels + url = "https://slack.com/api/channels.list" + + query_parameters = { + token: ENV['SLACK_API_TOKEN'] + } + + response = HTTParty.get(url, query: query_parameters) + + # to do move this into recipient class + channels = response["channels"].map do |channel| + {:name => channel["name"], + :topic => channel["topic"]["value"], + :member_count => (channel["members"]).length, + :slack_id => channel["id"]} + # ["name"] + end + + tp channels + end + + def list_users + url = "https://slack.com/api/users.list" + + query_parameters = { + token: ENV['SLACK_API_TOKEN'] + } + + end end \ No newline at end of file From 9e7715c1b66218ff413e758ac8cb35b223d4dd89 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Fri, 13 Mar 2020 00:31:46 -0700 Subject: [PATCH 10/25] list channels and list users methods made --- lib/workspace.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/workspace.rb b/lib/workspace.rb index d75596d4..632c8871 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -22,10 +22,12 @@ def list_channels # to do move this into recipient class channels = response["channels"].map do |channel| - {:name => channel["name"], + { + :name => channel["name"], :topic => channel["topic"]["value"], :member_count => (channel["members"]).length, - :slack_id => channel["id"]} + :slack_id => channel["id"] + } # ["name"] end @@ -39,5 +41,18 @@ def list_users token: ENV['SLACK_API_TOKEN'] } + response = HTTParty.get(url, query: query_parameters) + + # has username, real name, and Slack ID + puts response["members"] + users = response["members"].map do |user| + { + :name => user["name"], + :real_name => user["real_name"], + :slack_id => user["id"] + } + end + + tp users end end \ No newline at end of file From 21162cb8ce64e8fb5a3b6cced49fab611acd94b8 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 11:13:56 -0700 Subject: [PATCH 11/25] set up recipient class --- lib/recipient.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib/recipient.rb diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..2b0d0795 --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,29 @@ +class Recipient + + attr_reader :slack_id, :name + + def initialize(slack_id:, name:) + @slack_id = slack_id + @name = name + end + + def send_message(text) + end + + def details + end + + + # Class methods + + def self.get(url) + end + + def self.list_all + end + +end + + +class SlackAPIError < Exception +end \ No newline at end of file From a491fecec693d01c7cce61d0931d4b050585619e Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:20:36 -0700 Subject: [PATCH 12/25] tested and added list channels method --- lib/channel.rb | 37 +++++++++++++++++++++++++++++++++++-- lib/recipient.rb | 28 ++++++++++++++++++++++------ test/channel_test.rb | 44 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 100 insertions(+), 9 deletions(-) diff --git a/lib/channel.rb b/lib/channel.rb index 7655900f..f20cd965 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -1,3 +1,36 @@ -class Channel - +require_relative 'recipient' + +class Channel < Recipient + + attr_reader :member_count, :topic + + def initialize(member_count:, topic:, name:, slack_id:) + super(name: name, slack_id: slack_id) + + @member_count = member_count + @topic = topic + end + + def details + end + + # =====Class methods===== + def self.list_all + + response = Channel.get("https://slack.com/api/channels.list") + + # parsing the data + + + channels = response["channels"].map do |item| + Channel.new( + member_count: (item["members"]).length, + topic: item["topic"]["value"], + name: item["name"], + slack_id: item["id"], + ) + end + + return channels + end end \ No newline at end of file diff --git a/lib/recipient.rb b/lib/recipient.rb index 2b0d0795..e9fa321d 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -1,3 +1,8 @@ +require "httparty" +require 'dotenv' + +Dotenv.load + class Recipient attr_reader :slack_id, :name @@ -7,16 +12,27 @@ def initialize(slack_id:, name:) @name = name end - def send_message(text) - end + def send_message(text) + end - def details - end + def details + end - # Class methods +# =====Class methods===== +# gets url, based off of API documentation def self.get(url) + # send message using HTTParty + response = HTTParty.get(url, query: {token: ENV['SLACK_TOKEN']}) + + # accounting for errors + # slack still gives 200 code + if response.code != 200 || response["ok"] == false + raise SlackAPIError, "We encountered a problem: #{response["error"]}" + end + + return response end def self.list_all @@ -26,4 +42,4 @@ def self.list_all class SlackAPIError < Exception -end \ No newline at end of file +end diff --git a/test/channel_test.rb b/test/channel_test.rb index 2bac53cd..137136ce 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -1 +1,43 @@ -require_relative 'test_helper' \ No newline at end of file +require_relative 'test_helper' +require_relative '../lib/channel' + +describe "Channel" do + describe "self.get" do + it "gets a list of users" do + result = {} + + # make an API call + VCR.use_cassette("users-list-endpoint") do + # call method you intend to use + result = Channel.get("https://slack.com/api/channels.list") + end + + expect(result).must_be_kind_of HTTParty::Response + expect(result["ok"]).must_equal true + + end + + it "raises an error when a call fails" do + VCR.use_cassette("users-list-endpoint") do + # call method you intend to use + expect {Channel.get("https://slack.com/api/bogus.endpoint")}.must_raise SlackAPIError + end + end + end + + describe "self.list_all" do + it "returns a valid list of channels" do + result = [] + + VCR.use_cassette("channels-list-endpoint") do + result = Channel.list_all + end + + expect(result).must_be_kind_of Array + expect(result.length).must_be :>, 0 + result.each do |channel| + expect(channel).must_be_kind_of Channel + end + end + end +end \ No newline at end of file From 3da4b3750637abbe88e0adb7c446774179795a44 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:21:05 -0700 Subject: [PATCH 13/25] removed unnecessary file --- test/slack_test.rb | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 test/slack_test.rb diff --git a/test/slack_test.rb b/test/slack_test.rb deleted file mode 100644 index ddf1a3da..00000000 --- a/test/slack_test.rb +++ /dev/null @@ -1,2 +0,0 @@ -require_relative 'test_helper' - From 3f719bad6abd595cbcfd719bf12cd8ac71ea86b4 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:21:22 -0700 Subject: [PATCH 14/25] tested and added list user method --- lib/user.rb | 35 ++++++++++++++++++++++++++++++++++- test/user_test.rb | 44 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/lib/user.rb b/lib/user.rb index b38d91d6..8231e2f5 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -1,3 +1,36 @@ -class User +require_relative 'recipient' + +class User < Recipient + attr_reader :real_name + + def initialize(real_name:, name: , slack_id:) + super(name: name, slack_id: slack_id) + + @real_name = real_name + end + + + + def details + end + + # =====Class methods===== + def self.list_all + + response = User.get("https://slack.com/api/users.list") + + # parsing the data + + + users = response["members"].map do |item| + User.new( + real_name: item["real_name"], + name: item["name"], + slack_id: item["id"], + ) + end + + return users + end end \ No newline at end of file diff --git a/test/user_test.rb b/test/user_test.rb index 2bac53cd..72d70463 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -1 +1,43 @@ -require_relative 'test_helper' \ No newline at end of file +require_relative 'test_helper' +require_relative "../lib/user" + +describe "User" do + describe "self.get" do + it "gets a list of users" do + result = {} + + # make an API call + VCR.use_cassette("users-list-endpoint") do + # call method you intend to use + result = User.get("https://slack.com/api/users.list") + end + + expect(result).must_be_kind_of HTTParty::Response + expect(result["ok"]).must_equal true + + end + + it "raises an error when a call fails" do + VCR.use_cassette("users-list-endpoint") do + # call method you intend to use + expect {User.get("https://slack.com/api/bogus.endpoint")}.must_raise SlackAPIError + end + end + end + + describe "self.list_all" do + it "returns a valid list of {{users" do + result = [] + + VCR.use_cassette("users-list-endpoint") do + result = User.list_all + end + + expect(result).must_be_kind_of Array + expect(result.length).must_be :>, 0 + result.each do |user| + expect(user).must_be_kind_of User + end + end + end +end \ No newline at end of file From 2014a563190e65551ca4227fe1084b4aef45d4df Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:23:00 -0700 Subject: [PATCH 15/25] added list user and channel methods+cleaned code --- lib/slack.rb | 42 +++++++++----------------------- lib/workspace.rb | 63 ++++++++++++++---------------------------------- 2 files changed, 29 insertions(+), 76 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 4cb71f0f..28e1a530 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -7,6 +7,7 @@ Dotenv.load def get_user_choice + puts "\n" puts "Welcome to the Ada Slack CLI!" print "Please select one of the options: (1) list users @@ -15,56 +16,35 @@ def get_user_choice \n Selection: " - action = gets.chomp + selection = gets.chomp puts "" - return action + return selection end def main - # main code layout inspired by instructor solar system implementation + # interface layout inspired by instructor solar system implementation program_running = true - - - while (program_running) + while program_running user_choice = get_user_choice case user_choice.downcase when "list users", "1" - puts "list users not implemented yet" - #TODO list all users in Slack workspace - # has username, real name, and Slack ID + workspace = Workspace.new + tp workspace.users, "name", "real_name", "slack_id" + when "list channels", "2" - #TODO list all channels - # include channel name, topic, member count, and Slack ID - url = "https://slack.com/api/channels.list" workspace = Workspace.new - - query_parameters = { - token: ENV['SLACK_API_TOKEN'] - } - - response = HTTParty.get(url, query: query_parameters) - - - # to do move this into recipient class - channels = response["channels"].map do |channel| - {:name => channel["name"], - :topic => channel["topic"]["value"], - :member_count => (channel["members"]).length, - :slack_id => channel["id"]} - # ["name"] - end - - tp channels + tp workspace.channels, "name", "topic", "member_count", "slack_id" when "quit", "3" program_running = false - puts "Thank you for using the Ada Slack CLI" + puts "Thank you for using the Ada Slack CLI!" + else puts "Invalid selection. Please provide a valid action." end diff --git a/lib/workspace.rb b/lib/workspace.rb index 632c8871..fff1cf4e 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -1,58 +1,31 @@ require_relative 'channel' require_relative 'user' + class Workspace attr_reader :users, :channels - def intialize - @users = [] - @channels = [] + def initialize + @users = User.list_all + @channels = Channel.list_all + + end + + def select_user + raise NotImplementedError, "Code this method." + end + def select_channel + raise NotImplementedError, "Code this method." end - def list_channels - url = "https://slack.com/api/channels.list" - - query_parameters = { - token: ENV['SLACK_API_TOKEN'] - } - - response = HTTParty.get(url, query: query_parameters) - - # to do move this into recipient class - channels = response["channels"].map do |channel| - { - :name => channel["name"], - :topic => channel["topic"]["value"], - :member_count => (channel["members"]).length, - :slack_id => channel["id"] - } - # ["name"] - end - - tp channels + def show_details + raise NotImplementedError, "Code this method." end - def list_users - url = "https://slack.com/api/users.list" - - query_parameters = { - token: ENV['SLACK_API_TOKEN'] - } - - response = HTTParty.get(url, query: query_parameters) - - # has username, real name, and Slack ID - puts response["members"] - users = response["members"].map do |user| - { - :name => user["name"], - :real_name => user["real_name"], - :slack_id => user["id"] - } - end - - tp users + def send_message + raise NotImplementedError, "Code this method." end -end \ No newline at end of file + +end From 9d24980e17b9ded82b824d54f33bd1026c9693db Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:23:23 -0700 Subject: [PATCH 16/25] cleaned up code --- test/test_helper.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 6f4e0bb6..5dd23e82 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,8 +9,6 @@ require 'minitest/skip_dsl' require 'vcr' -require_relative '../lib/slack.rb' -require_relative '../lib/workspace.rb' Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new @@ -27,6 +25,9 @@ :match_requests_on => [:method, :uri, :body], # The http method, URI and body of a request all need to match } + config.filter_sensitive_data("") do + ENV["SLACK_API_TOKEN"] + end # Don't leave our token lying around in a cassette file. end From 4cbb62f04159060d29ede3d2fbc0a23e8b69cfc6 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:23:48 -0700 Subject: [PATCH 17/25] casettes for list channels and users method --- test/cassettes/channels-list-endpoint.yml | 83 +++++ test/cassettes/users-list-endpoint.yml | 366 ++++++++++++++++++++++ 2 files changed, 449 insertions(+) create mode 100644 test/cassettes/channels-list-endpoint.yml create mode 100644 test/cassettes/users-list-endpoint.yml diff --git a/test/cassettes/channels-list-endpoint.yml b/test/cassettes/channels-list-endpoint.yml new file mode 100644 index 00000000..a5f9833e --- /dev/null +++ b/test/cassettes/channels-list-endpoint.yml @@ -0,0 +1,83 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/channels.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + 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: + - '687' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 23:13:34 GMT + Server: + - Apache + X-Slack-Req-Id: + - 2555c808ee744bea5e0e0ba7d07a124a + X-Oauth-Scopes: + - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + X-Accepted-Oauth-Scopes: + - channels: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-nxpy + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1b74ccf4cb51eacf97a0e6d60ae46a3f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - RVfyJGh2zhjBO8c8ZuduNU5Et9t9RwNvhpXpcUxGS_Oe6pZ0R0ymFA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUUKJ03NX"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUTJAGAEN","UUUKJ03NX"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUUKJ03NX"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 23:13:34 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/users-list-endpoint.yml b/test/cassettes/users-list-endpoint.yml new file mode 100644 index 00000000..c21e22c1 --- /dev/null +++ b/test/cassettes/users-list-endpoint.yml @@ -0,0 +1,366 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/bogus.endpoint?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: + - '80' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 21:34:22 GMT + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + 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 + Referrer-Policy: + - no-referrer + X-Slack-Backend: + - h + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - fa057ec93710513ea9e8b3ede05eac9f + X-Xss-Protection: + - '0' + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-coly + X-Cache: + - Miss from cloudfront + Via: + - 1.1 aabd01c4a20dae837d162bd972422efc.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - TUIglHbL-hkPBwwIOxFj3HIjqbeoKWNkCJ9HPOOwP5J_lcaRbOiEvg== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' + http_version: null + recorded_at: Sat, 14 Mar 2020 21:34:22 GMT +- request: + method: get + uri: https://slack.com/api/users.list?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: + - '53' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 21:34:22 GMT + Server: + - Apache + X-Slack-Req-Id: + - f011ec292655dbd88b803a8fcbef868d + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + 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 + Vary: + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - users:read + X-Slack-Backend: + - h + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Content-Type-Options: + - nosniff + X-Xss-Protection: + - '0' + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-4tm2 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1002c05e647d0804e83147cdd205d14a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - HGJVtxYqatbFlpC9PK0oZNoxMWMyiBI7KEGaE4AT3I-bS-UQAb7IWA== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"not_authed"}' + http_version: null + recorded_at: Sat, 14 Mar 2020 21:34:22 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + 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: + - '2147' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 21:50:10 GMT + Server: + - Apache + X-Slack-Req-Id: + - '08104c8e639b19230d95e91396fbe2f4' + X-Oauth-Scopes: + - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + 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-zk2s + X-Cache: + - Miss from cloudfront + Via: + - 1.1 57a21088b36c69a83578b5a5579df58f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - ZOb7KKRz-eCFUZppnxe44gIjGtSWDTHL3WmtgUyCXyVgoiey_afA_g== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV63QKAAU","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":"TV63QKAAU"},"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":"UUT9Z80AE","team_id":"TV63QKAAU","name":"thenora","deleted":false,"color":"9f69e7","real_name":"Nora","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Nora","real_name_normalized":"Nora","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gecfa8e6728a","first_name":"Nora","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583868865},{"id":"UUTA3S16E","team_id":"TV63QKAAU","name":"nguyen_diana","deleted":false,"color":"3c989f","real_name":"Diana + Nguyen","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Diana + Nguyen","real_name_normalized":"Diana Nguyen","display_name":"Diana Nguyen","display_name_normalized":"Diana + Nguyen","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g53546304cba","image_24":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583876186},{"id":"UUTJAGAEN","team_id":"TV63QKAAU","name":"time_yolotzin_api_pro","deleted":false,"color":"e96699","real_name":"time_yolotzin_api_pro","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"time_yolotzin_api_pro","real_name_normalized":"time_yolotzin_api_pro","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3ed47f067f5","api_app_id":"AV68RSJH3","always_active":false,"bot_id":"BV881SK2B","image_24":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583877148},{"id":"UUUKJ03NX","team_id":"TV63QKAAU","name":"kate.d.mangubat","deleted":false,"color":"4bbe2e","real_name":"Kate + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kate + M","real_name_normalized":"Kate M","display_name":"Kate","display_name_normalized":"Kate","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g078604cbcfb","first_name":"Kate","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583997418},{"id":"UUW1CJZ41","team_id":"TV63QKAAU","name":"yltzndnbr","deleted":false,"color":"e7392d","real_name":"Yolotzin + Dunbar","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Yolotzin + Dunbar","real_name_normalized":"Yolotzin Dunbar","display_name":"Yoyo","display_name_normalized":"Yoyo","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g574a1cc3875","first_name":"Yolotzin","last_name":"Dunbar","image_24":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584083810},{"id":"UV63Y1672","team_id":"TV63QKAAU","name":"tithvorlakmok","deleted":false,"color":"674b1b","real_name":"Lak","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lak","real_name_normalized":"Lak","display_name":"Lak","display_name_normalized":"Lak","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gfc5b2d94a48","image_24":"https:\/\/secure.gravatar.com\/avatar\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583869256},{"id":"UV66LJW5A","team_id":"TV63QKAAU","name":"noras_ada_slack_api","deleted":false,"color":"684b6c","real_name":"noras_ada_slack_api","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"noras_ada_slack_api","real_name_normalized":"noras_ada_slack_api","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"9c3283af6dfc","api_app_id":"AV6LEP79B","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_original.jpg","is_custom_image":true,"bot_id":"BV8FZCLK1","first_name":"noras_ada_slack_api","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1583985914},{"id":"UV8PJ6R0W","team_id":"TV63QKAAU","name":"diana_slack_cli","deleted":false,"color":"e0a729","real_name":"diana_slack_cli","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"diana_slack_cli","real_name_normalized":"diana_slack_cli","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"c8e976fcbc63","api_app_id":"AUWEPCVDF","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_original.jpg","is_custom_image":true,"bot_id":"BUTPL5J58","first_name":"diana_slack_cli","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1584029336},{"id":"UVAALE528","team_id":"TV63QKAAU","name":"github","deleted":false,"color":"2b6836","real_name":"GitHub","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"GitHub","real_name_normalized":"GitHub","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"a384f3b8cb58","api_app_id":"A8GBNUWU8","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_original.png","is_custom_image":true,"bot_id":"BVAALE484","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_1024.png","status_text_canonical":"","team":"TV63QKAAU"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":true,"updated":1584036089},{"id":"UVB4TQ89M","team_id":"TV63QKAAU","name":"lak_slackapi","deleted":false,"color":"5b89d5","real_name":"lak_slackapi","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lak_slackapi","real_name_normalized":"lak_slackapi","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g6ea0fcda828","api_app_id":"AV998UM2R","always_active":false,"bot_id":"BV98UFAHE","image_24":"https:\/\/secure.gravatar.com\/avatar\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583989948}],"cache_ts":1584222610,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 21:50:10 GMT +- request: + method: get + uri: https://slack.com/api/bogus.endpoint?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + 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: + - '80' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 21:50:10 GMT + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + 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 + Referrer-Policy: + - no-referrer + X-Slack-Backend: + - h + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 427c46c7a305b2a068fc4c18b5ebe3fe + X-Xss-Protection: + - '0' + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-5mc5 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 d8792dbd3191bbe722eba5b536b979c8.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - Hd-591WhNayexy5Q3JYyJBjcKpywKUMwHn0bnz45U5QyPJpNxjboUQ== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' + http_version: null + recorded_at: Sat, 14 Mar 2020 21:50:10 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + 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: + - '686' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 23:13:05 GMT + Server: + - Apache + X-Slack-Req-Id: + - e811216d24eea6a3c26d0ace5cfb2f88 + X-Oauth-Scopes: + - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + X-Accepted-Oauth-Scopes: + - channels: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-exg7 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 a847181d425b7fc57e81eb3c800bfdf2.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - x3BGgzPv6izcRhwDFAnWyDJDJjwIXv0eInWurmlNavfV4oGSwT6iqQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672","UUTJAGAEN"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 23:13:05 GMT +recorded_with: VCR 5.1.0 From cb19637355857b639de9bb2f567fb15f91f28c9d Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:31:10 -0700 Subject: [PATCH 18/25] added filter to remove slack token being public --- .gitignore | 2 +- test/cassettes/channels-list-endpoint.yml | 26 +-- test/cassettes/users-list-endpoint.yml | 237 +++++----------------- test/test_helper.rb | 4 +- test/workspace_test.rb | 6 +- 5 files changed, 74 insertions(+), 201 deletions(-) diff --git a/.gitignore b/.gitignore index 3ff4fada..82cc5be2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ .DS_Store -# Ignore environemnt variables +# Ignore environment variables .env diff --git a/test/cassettes/channels-list-endpoint.yml b/test/cassettes/channels-list-endpoint.yml index a5f9833e..a6f87434 100644 --- a/test/cassettes/channels-list-endpoint.yml +++ b/test/cassettes/channels-list-endpoint.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: https://slack.com/api/channels.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + uri: https://slack.com/api/channels.list?token= body: encoding: US-ASCII string: '' @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '687' + - '690' Connection: - keep-alive Date: - - Sat, 14 Mar 2020 23:13:34 GMT + - Sat, 14 Mar 2020 23:30:20 GMT Server: - Apache X-Slack-Req-Id: - - 2555c808ee744bea5e0e0ba7d07a124a + - 83d25c15af62cac954949fa407ba8ef8 X-Oauth-Scopes: - - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write X-Accepted-Oauth-Scopes: - channels:read Access-Control-Expose-Headers: @@ -60,24 +60,24 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-nxpy + - haproxy-www-2yq0 X-Cache: - Miss from cloudfront Via: - - 1.1 1b74ccf4cb51eacf97a0e6d60ae46a3f.cloudfront.net (CloudFront) + - 1.1 6ca7826fb0f4c565b1af9c7737725c49.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - RVfyJGh2zhjBO8c8ZuduNU5Et9t9RwNvhpXpcUxGS_Oe6pZ0R0ymFA== + - UIQBP6ffd70SlKwSswWbYnQiESRDVZ434_pfKIV6sVfsCq_J5Q9MeA== body: encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUUKJ03NX"],"topic":{"value":"Company-wide + string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"Company-wide announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUTJAGAEN","UUUKJ03NX"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV63Y1672","UUTA3S16E","UUT9Z80AE","UUW1CJZ41","UUUKJ03NX"],"topic":{"value":"Non-work + are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUTJAGAEN","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"Non-work banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + you''d prefer to keep out of more focused work-related channels.","creator":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV66LJW5A","UUT9Z80AE"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' http_version: null - recorded_at: Sat, 14 Mar 2020 23:13:34 GMT + recorded_at: Sat, 14 Mar 2020 23:30:20 GMT recorded_with: VCR 5.1.0 diff --git a/test/cassettes/users-list-endpoint.yml b/test/cassettes/users-list-endpoint.yml index c21e22c1..396ae313 100644 --- a/test/cassettes/users-list-endpoint.yml +++ b/test/cassettes/users-list-endpoint.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: https://slack.com/api/bogus.endpoint?token= + uri: https://slack.com/api/channels.list?token= body: encoding: US-ASCII string: '' @@ -21,149 +21,19 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '80' - Connection: - - keep-alive - Date: - - Sat, 14 Mar 2020 21:34:22 GMT - Server: - - Apache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - 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 - Referrer-Policy: - - no-referrer - X-Slack-Backend: - - h - Access-Control-Expose-Headers: - - x-slack-req-id, retry-after - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - X-Slack-Req-Id: - - fa057ec93710513ea9e8b3ede05eac9f - X-Xss-Protection: - - '0' - Access-Control-Allow-Origin: - - "*" - X-Via: - - haproxy-www-coly - X-Cache: - - Miss from cloudfront - Via: - - 1.1 aabd01c4a20dae837d162bd972422efc.cloudfront.net (CloudFront) - X-Amz-Cf-Pop: - - SEA19-C1 - X-Amz-Cf-Id: - - TUIglHbL-hkPBwwIOxFj3HIjqbeoKWNkCJ9HPOOwP5J_lcaRbOiEvg== - body: - encoding: ASCII-8BIT - string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' - http_version: null - recorded_at: Sat, 14 Mar 2020 21:34:22 GMT -- request: - method: get - uri: https://slack.com/api/users.list?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: - - '53' - Connection: - - keep-alive - Date: - - Sat, 14 Mar 2020 21:34:22 GMT - Server: - - Apache - X-Slack-Req-Id: - - f011ec292655dbd88b803a8fcbef868d - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - 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 - Vary: - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - users:read - X-Slack-Backend: - - h - Access-Control-Expose-Headers: - - x-slack-req-id, retry-after - X-Content-Type-Options: - - nosniff - X-Xss-Protection: - - '0' - Access-Control-Allow-Origin: - - "*" - X-Via: - - haproxy-www-4tm2 - X-Cache: - - Miss from cloudfront - Via: - - 1.1 1002c05e647d0804e83147cdd205d14a.cloudfront.net (CloudFront) - X-Amz-Cf-Pop: - - SEA19-C1 - X-Amz-Cf-Id: - - HGJVtxYqatbFlpC9PK0oZNoxMWMyiBI7KEGaE4AT3I-bS-UQAb7IWA== - body: - encoding: ASCII-8BIT - string: '{"ok":false,"error":"not_authed"}' - http_version: null - recorded_at: Sat, 14 Mar 2020 21:34:22 GMT -- request: - method: get - uri: https://slack.com/api/users.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG - 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: - - '2147' + - '687' Connection: - keep-alive Date: - - Sat, 14 Mar 2020 21:50:10 GMT + - Sat, 14 Mar 2020 23:30:19 GMT Server: - Apache X-Slack-Req-Id: - - '08104c8e639b19230d95e91396fbe2f4' + - 719c1337fcd7383d116ba5a44bae0a15 X-Oauth-Scopes: - - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write X-Accepted-Oauth-Scopes: - - users:read + - channels:read Access-Control-Expose-Headers: - x-slack-req-id, retry-after X-Slack-Backend: @@ -190,38 +60,29 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-zk2s + - haproxy-www-97nl X-Cache: - Miss from cloudfront Via: - - 1.1 57a21088b36c69a83578b5a5579df58f.cloudfront.net (CloudFront) + - 1.1 60b744e5b364d04abea9fa6686121242.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - ZOb7KKRz-eCFUZppnxe44gIjGtSWDTHL3WmtgUyCXyVgoiey_afA_g== + - M9qtRXvBOOMGaNcTxzKW6eoEBEJLiq1iO0uYTua8_dSKdq2JsP4rdQ== body: encoding: ASCII-8BIT - string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV63QKAAU","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":"TV63QKAAU"},"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":"UUT9Z80AE","team_id":"TV63QKAAU","name":"thenora","deleted":false,"color":"9f69e7","real_name":"Nora","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Nora","real_name_normalized":"Nora","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gecfa8e6728a","first_name":"Nora","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583868865},{"id":"UUTA3S16E","team_id":"TV63QKAAU","name":"nguyen_diana","deleted":false,"color":"3c989f","real_name":"Diana - Nguyen","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Diana - Nguyen","real_name_normalized":"Diana Nguyen","display_name":"Diana Nguyen","display_name_normalized":"Diana - Nguyen","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g53546304cba","image_24":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583876186},{"id":"UUTJAGAEN","team_id":"TV63QKAAU","name":"time_yolotzin_api_pro","deleted":false,"color":"e96699","real_name":"time_yolotzin_api_pro","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"time_yolotzin_api_pro","real_name_normalized":"time_yolotzin_api_pro","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3ed47f067f5","api_app_id":"AV68RSJH3","always_active":false,"bot_id":"BV881SK2B","image_24":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583877148},{"id":"UUUKJ03NX","team_id":"TV63QKAAU","name":"kate.d.mangubat","deleted":false,"color":"4bbe2e","real_name":"Kate - M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kate - M","real_name_normalized":"Kate M","display_name":"Kate","display_name_normalized":"Kate","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g078604cbcfb","first_name":"Kate","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583997418},{"id":"UUW1CJZ41","team_id":"TV63QKAAU","name":"yltzndnbr","deleted":false,"color":"e7392d","real_name":"Yolotzin - Dunbar","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Yolotzin - Dunbar","real_name_normalized":"Yolotzin Dunbar","display_name":"Yoyo","display_name_normalized":"Yoyo","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g574a1cc3875","first_name":"Yolotzin","last_name":"Dunbar","image_24":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584083810},{"id":"UV63Y1672","team_id":"TV63QKAAU","name":"tithvorlakmok","deleted":false,"color":"674b1b","real_name":"Lak","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lak","real_name_normalized":"Lak","display_name":"Lak","display_name_normalized":"Lak","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gfc5b2d94a48","image_24":"https:\/\/secure.gravatar.com\/avatar\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583869256},{"id":"UV66LJW5A","team_id":"TV63QKAAU","name":"noras_ada_slack_api","deleted":false,"color":"684b6c","real_name":"noras_ada_slack_api","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"noras_ada_slack_api","real_name_normalized":"noras_ada_slack_api","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"9c3283af6dfc","api_app_id":"AV6LEP79B","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_original.jpg","is_custom_image":true,"bot_id":"BV8FZCLK1","first_name":"noras_ada_slack_api","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1583985914},{"id":"UV8PJ6R0W","team_id":"TV63QKAAU","name":"diana_slack_cli","deleted":false,"color":"e0a729","real_name":"diana_slack_cli","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"diana_slack_cli","real_name_normalized":"diana_slack_cli","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"c8e976fcbc63","api_app_id":"AUWEPCVDF","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_original.jpg","is_custom_image":true,"bot_id":"BUTPL5J58","first_name":"diana_slack_cli","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1584029336},{"id":"UVAALE528","team_id":"TV63QKAAU","name":"github","deleted":false,"color":"2b6836","real_name":"GitHub","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"GitHub","real_name_normalized":"GitHub","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"a384f3b8cb58","api_app_id":"A8GBNUWU8","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_original.png","is_custom_image":true,"bot_id":"BVAALE484","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_1024.png","status_text_canonical":"","team":"TV63QKAAU"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":true,"updated":1584036089},{"id":"UVB4TQ89M","team_id":"TV63QKAAU","name":"lak_slackapi","deleted":false,"color":"5b89d5","real_name":"lak_slackapi","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lak_slackapi","real_name_normalized":"lak_slackapi","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g6ea0fcda828","api_app_id":"AV998UM2R","always_active":false,"bot_id":"BV98UFAHE","image_24":"https:\/\/secure.gravatar.com\/avatar\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583989948}],"cache_ts":1584222610,"response_metadata":{"next_cursor":""}}' + string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUTJAGAEN","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' http_version: null - recorded_at: Sat, 14 Mar 2020 21:50:10 GMT + recorded_at: Sat, 14 Mar 2020 23:30:19 GMT - request: method: get - uri: https://slack.com/api/bogus.endpoint?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + uri: https://slack.com/api/bogus.endpoint?token= body: encoding: US-ASCII string: '' @@ -244,7 +105,7 @@ http_interactions: Connection: - keep-alive Date: - - Sat, 14 Mar 2020 21:50:10 GMT + - Sat, 14 Mar 2020 23:30:19 GMT Server: - Apache Strict-Transport-Security: @@ -263,29 +124,29 @@ http_interactions: X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 427c46c7a305b2a068fc4c18b5ebe3fe + - 435ae26b4a27d6b74813380d041d7945 X-Xss-Protection: - '0' Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-5mc5 + - haproxy-www-lgqg X-Cache: - Miss from cloudfront Via: - - 1.1 d8792dbd3191bbe722eba5b536b979c8.cloudfront.net (CloudFront) + - 1.1 aabd01c4a20dae837d162bd972422efc.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - Hd-591WhNayexy5Q3JYyJBjcKpywKUMwHn0bnz45U5QyPJpNxjboUQ== + - RLTXXm5i730gcSYFeMa-WjO9_L8d472GhlUB8ru8t_iPuWrSSdAXXQ== body: encoding: ASCII-8BIT string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' http_version: null - recorded_at: Sat, 14 Mar 2020 21:50:10 GMT + recorded_at: Sat, 14 Mar 2020 23:30:19 GMT - request: method: get - uri: https://slack.com/api/channels.list?token=xoxb-992126656368-994800229030-ep6jgmfuG9sCjdZAqJD06AMG + uri: https://slack.com/api/users.list?token= body: encoding: US-ASCII string: '' @@ -304,23 +165,23 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '686' + - '2157' Connection: - keep-alive Date: - - Sat, 14 Mar 2020 23:13:05 GMT + - Sat, 14 Mar 2020 23:30:19 GMT Server: - Apache X-Slack-Req-Id: - - e811216d24eea6a3c26d0ace5cfb2f88 + - 84cb2c3503d3c30038b93e6cb1e5ec86 X-Oauth-Scopes: - - users:read,channels:read,chat:write,chat:write.public,chat:write.customize,users.profile:read,users:write + - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write X-Accepted-Oauth-Scopes: - - channels:read + - users:read Access-Control-Expose-Headers: - x-slack-req-id, retry-after X-Slack-Backend: - - h + - r X-Content-Type-Options: - nosniff Expires: @@ -343,24 +204,32 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-exg7 + - haproxy-www-wexm X-Cache: - Miss from cloudfront Via: - - 1.1 a847181d425b7fc57e81eb3c800bfdf2.cloudfront.net (CloudFront) + - 1.1 b23fb37cd7fff033ab21e3284f558a28.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - x3BGgzPv6izcRhwDFAnWyDJDJjwIXv0eInWurmlNavfV4oGSwT6iqQ== + - MPcJT5Kr-9kRwa2J_Q4in6aTnc7Bvs7WKi8Dys61tlLWE232dAVHnQ== body: encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672"],"topic":{"value":"Company-wide - announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This - channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672","UUTJAGAEN"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUUKJ03NX","UUT9Z80AE","UUTA3S16E","UV63Y1672"],"topic":{"value":"Non-work - banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV63QKAAU","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":"TV63QKAAU"},"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":"UUT9Z80AE","team_id":"TV63QKAAU","name":"thenora","deleted":false,"color":"9f69e7","real_name":"Nora","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Nora","real_name_normalized":"Nora","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gecfa8e6728a","first_name":"Nora","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ecfa8e6728af18fdb2a467aed6cc4688.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583868865},{"id":"UUTA3S16E","team_id":"TV63QKAAU","name":"nguyen_diana","deleted":false,"color":"3c989f","real_name":"Diana + Nguyen","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Diana + Nguyen","real_name_normalized":"Diana Nguyen","display_name":"Diana Nguyen","display_name_normalized":"Diana + Nguyen","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g53546304cba","image_24":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/53546304cba703fdbcc3d6eadf959046.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583876186,"has_2fa":false},{"id":"UUTJAGAEN","team_id":"TV63QKAAU","name":"time_yolotzin_api_pro","deleted":false,"color":"e96699","real_name":"time_yolotzin_api_pro","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"time_yolotzin_api_pro","real_name_normalized":"time_yolotzin_api_pro","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3ed47f067f5","api_app_id":"AV68RSJH3","always_active":false,"bot_id":"BV881SK2B","image_24":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3ed47f067f52bf041336c4087124e81a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583877148},{"id":"UUUKJ03NX","team_id":"TV63QKAAU","name":"kate.d.mangubat","deleted":false,"color":"4bbe2e","real_name":"Kate + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kate + M","real_name_normalized":"Kate M","display_name":"Kate","display_name_normalized":"Kate","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g078604cbcfb","first_name":"Kate","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583997418},{"id":"UUW1CJZ41","team_id":"TV63QKAAU","name":"yltzndnbr","deleted":false,"color":"e7392d","real_name":"Yolotzin + Dunbar","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Yolotzin + Dunbar","real_name_normalized":"Yolotzin Dunbar","display_name":"Yoyo","display_name_normalized":"Yoyo","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g574a1cc3875","first_name":"Yolotzin","last_name":"Dunbar","image_24":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584083810},{"id":"UV63Y1672","team_id":"TV63QKAAU","name":"tithvorlakmok","deleted":false,"color":"674b1b","real_name":"Lak","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lak","real_name_normalized":"Lak","display_name":"Lak","display_name_normalized":"Lak","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gfc5b2d94a48","image_24":"https:\/\/secure.gravatar.com\/avatar\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583869256},{"id":"UV66LJW5A","team_id":"TV63QKAAU","name":"noras_ada_slack_api","deleted":false,"color":"684b6c","real_name":"noras_ada_slack_api","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"noras_ada_slack_api","real_name_normalized":"noras_ada_slack_api","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"9c3283af6dfc","api_app_id":"AV6LEP79B","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_original.jpg","is_custom_image":true,"bot_id":"BV8FZCLK1","first_name":"noras_ada_slack_api","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1583985914},{"id":"UV8PJ6R0W","team_id":"TV63QKAAU","name":"diana_slack_cli","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"diana_slack_cli","real_name_normalized":"diana_slack_cli","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"c8e976fcbc63","api_app_id":"AUWEPCVDF","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_original.jpg","is_custom_image":true,"bot_id":"BUTPL5J58","first_name":"diana_slack_cli","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"is_bot":true,"is_app_user":false,"updated":1584228234},{"id":"UVAALE528","team_id":"TV63QKAAU","name":"github","deleted":false,"color":"2b6836","real_name":"GitHub","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"GitHub","real_name_normalized":"GitHub","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"a384f3b8cb58","api_app_id":"A8GBNUWU8","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_original.png","is_custom_image":true,"bot_id":"BVAALE484","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_1024.png","status_text_canonical":"","team":"TV63QKAAU"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":true,"updated":1584036089},{"id":"UVB4TQ89M","team_id":"TV63QKAAU","name":"lak_slackapi","deleted":false,"color":"5b89d5","real_name":"lak_slackapi","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lak_slackapi","real_name_normalized":"lak_slackapi","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g6ea0fcda828","api_app_id":"AV998UM2R","always_active":false,"bot_id":"BV98UFAHE","image_24":"https:\/\/secure.gravatar.com\/avatar\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583989948}],"cache_ts":1584228619,"response_metadata":{"next_cursor":""}}' http_version: null - recorded_at: Sat, 14 Mar 2020 23:13:05 GMT + recorded_at: Sat, 14 Mar 2020 23:30:19 GMT recorded_with: VCR 5.1.0 diff --git a/test/test_helper.rb b/test/test_helper.rb index 5dd23e82..59dee41f 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -25,8 +25,8 @@ :match_requests_on => [:method, :uri, :body], # The http method, URI and body of a request all need to match } - config.filter_sensitive_data("") do - ENV["SLACK_API_TOKEN"] + config.filter_sensitive_data("") do + ENV["SLACK_TOKEN"] end # Don't leave our token lying around in a cassette file. diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 2bac53cd..333431f3 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -1 +1,5 @@ -require_relative 'test_helper' \ No newline at end of file +require_relative 'test_helper' +require_relative '../lib/workspace.rb' + +describe "Workspace" do{} +end From 27448671b71cd20ce59a88694fdc93575b94afd3 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sat, 14 Mar 2020 16:37:13 -0700 Subject: [PATCH 19/25] added select user, channel, and details as options --- lib/slack.rb | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 28e1a530..5f33f5af 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -12,7 +12,10 @@ def get_user_choice print "Please select one of the options: (1) list users (2) list channels - (3) quit + (3) select user + (4) select channel + (5) details + (6) quit \n Selection: " @@ -28,23 +31,29 @@ def main program_running = true while program_running - + workspace = Workspace.new user_choice = get_user_choice case user_choice.downcase when "list users", "1" - workspace = Workspace.new tp workspace.users, "name", "real_name", "slack_id" - when "list channels", "2" - workspace = Workspace.new tp workspace.channels, "name", "topic", "member_count", "slack_id" - - when "quit", "3" + + when "select user", "3" + # TODO + + when "select channel", "4" + # TODO + + when "details", "5" + # TODO + + when "quit", "6" program_running = false puts "Thank you for using the Ada Slack CLI!" - + else puts "Invalid selection. Please provide a valid action." end From 1a2703deca2a15247de00603cefc1f97e526cd88 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 18:42:02 -0700 Subject: [PATCH 20/25] created and tested select channel and user methods --- lib/slack.rb | 6 ++++-- lib/workspace.rb | 34 +++++++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 5f33f5af..6c231778 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -42,10 +42,12 @@ def main tp workspace.channels, "name", "topic", "member_count", "slack_id" when "select user", "3" - # TODO + print "Please provide a user name: " + puts workspace.select_user when "select channel", "4" - # TODO + print "Please provide a channel name: " + puts workspace.select_channel when "details", "5" # TODO diff --git a/lib/workspace.rb b/lib/workspace.rb index fff1cf4e..f0ef127f 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -1,23 +1,47 @@ require_relative 'channel' require_relative 'user' - class Workspace - attr_reader :users, :channels + attr_reader :users, :channels, :selected def initialize @users = User.list_all @channels = Channel.list_all + @selected = nil end - + def select_user - raise NotImplementedError, "Code this method." + user_input = get_user_input + + users.each do |user| + if user.name == user_input + @selected = user + return "#{@selected.name} has been selected" + end + end + + @selected = nil + return "User could not be found." + end + + def get_user_input + gets.chomp end def select_channel - raise NotImplementedError, "Code this method." + user_input = get_user_input + + channels.each do |channel| + if channel.name == user_input + @selected = channel + return "#{@selected.name} has been selected" + end + end + + @selected = nil + return "Channel could not be found." end def show_details From 9651cc78ea4d0345ea85865a32836d016404de81 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 18:42:26 -0700 Subject: [PATCH 21/25] cleaned up tests for select channel and user --- test/cassettes/channels-list-endpoint.yml | 64 ++++++++++++++++++++++ test/cassettes/user-list-endpoint.yml | 67 +++++++++++++++++++++++ test/workspace_test.rb | 31 ++++++++++- 3 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 test/cassettes/user-list-endpoint.yml diff --git a/test/cassettes/channels-list-endpoint.yml b/test/cassettes/channels-list-endpoint.yml index a6f87434..5c41669e 100644 --- a/test/cassettes/channels-list-endpoint.yml +++ b/test/cassettes/channels-list-endpoint.yml @@ -80,4 +80,68 @@ http_interactions: you''d prefer to keep out of more focused work-related channels.","creator":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV66LJW5A","UUT9Z80AE"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' http_version: null recorded_at: Sat, 14 Mar 2020 23:30:20 GMT +- request: + method: get + uri: https://slack.com/api/bogus.endpoint?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: + - '80' + Connection: + - keep-alive + Date: + - Mon, 16 Mar 2020 00:38:49 GMT + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + 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 + Referrer-Policy: + - no-referrer + X-Slack-Backend: + - h + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 4db145759d443b4fc88cc6c1833cee89 + X-Xss-Protection: + - '0' + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-9hkc + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4f3feb5c4393987d42d1971d404d7cea.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - USomVbnSnzW9I6ZFPEb26JkEUraOAz4Vdymk1YyCIiUIpqz1CHb4GA== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' + http_version: null + recorded_at: Mon, 16 Mar 2020 00:38:49 GMT recorded_with: VCR 5.1.0 diff --git a/test/cassettes/user-list-endpoint.yml b/test/cassettes/user-list-endpoint.yml new file mode 100644 index 00000000..8ed81edf --- /dev/null +++ b/test/cassettes/user-list-endpoint.yml @@ -0,0 +1,67 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/bogus.endpoint?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: + - '80' + Connection: + - keep-alive + Date: + - Mon, 16 Mar 2020 00:55:19 GMT + Server: + - Apache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + 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 + Referrer-Policy: + - no-referrer + X-Slack-Backend: + - h + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 913d2b7a92f4a481a264111f076551f2 + X-Xss-Protection: + - '0' + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-irjv + X-Cache: + - Miss from cloudfront + Via: + - 1.1 e66162aafd55b64ba1478ff7105150fb.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - zLKGQbSPMNVuia_87cv2BGyKfdiTZemY64NBB9uwYrvjrNl1Q3a_hw== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' + http_version: null + recorded_at: Mon, 16 Mar 2020 00:55:19 GMT +recorded_with: VCR 5.1.0 diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 333431f3..0c63cad6 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -1,5 +1,34 @@ require_relative 'test_helper' require_relative '../lib/workspace.rb' -describe "Workspace" do{} +describe "Workspace" do + before do + VCR.configuration.ignore_request { true } + @workspace = Workspace.new + end + + describe "select_user" do + + it "selects a user within the slack user list" do + def @workspace.get_user_input; "slackbot" end + expect(@workspace.select_user).must_equal "slackbot has been selected" + end + + it "raises an error if user provided is not valid" do + def @workspace.get_user_input; "notauser" end + expect(@workspace.select_user).must_equal "User could not be found." + end + end + + describe "select_channel" do + it "selects a channel within the channel list" do + def @workspace.get_user_input; "random" end + expect(@workspace.select_channel).must_equal "random has been selected" + end + + it "raises a message if a channel could not be found" do + def @workspace.get_user_input; "notachannel" end + expect(@workspace.select_channel).must_equal "Channel could not be found." + end + end end From b3aeea93405d37c892302f4d9ca163b65a7f38eb Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 18:50:23 -0700 Subject: [PATCH 22/25] allowed slack_id for input for select channel+user --- lib/workspace.rb | 4 ++-- test/workspace_test.rb | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/workspace.rb b/lib/workspace.rb index f0ef127f..a956c6d0 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -16,7 +16,7 @@ def select_user user_input = get_user_input users.each do |user| - if user.name == user_input + if user.name == user_input || user.slack_id == user_input @selected = user return "#{@selected.name} has been selected" end @@ -34,7 +34,7 @@ def select_channel user_input = get_user_input channels.each do |channel| - if channel.name == user_input + if channel.name == user_input || channel.slack_id == user_input @selected = channel return "#{@selected.name} has been selected" end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 0c63cad6..a80712ed 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -8,12 +8,16 @@ end describe "select_user" do - - it "selects a user within the slack user list" do + it "correctly selects a user by username" do def @workspace.get_user_input; "slackbot" end expect(@workspace.select_user).must_equal "slackbot has been selected" end + it "correctly selects a user by slack_id" do + def @workspace.get_user_input; "USLACKBOT" end + expect(@workspace.select_user).must_equal "slackbot has been selected" + end + it "raises an error if user provided is not valid" do def @workspace.get_user_input; "notauser" end expect(@workspace.select_user).must_equal "User could not be found." @@ -21,10 +25,15 @@ def @workspace.get_user_input; "notauser" end end describe "select_channel" do - it "selects a channel within the channel list" do + it "correctly selects a channel by channel name" do def @workspace.get_user_input; "random" end expect(@workspace.select_channel).must_equal "random has been selected" end + + it "correctly selects a channel by slack_id" do + def @workspace.get_user_input; "CV7V4KYLF" end + expect(@workspace.select_channel).must_equal "random has been selected" + end it "raises a message if a channel could not be found" do def @workspace.get_user_input; "notachannel" end From 471b00116ac78979d1b8a9f347672c48a6902015 Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 20:37:05 -0700 Subject: [PATCH 23/25] fixed workspace_test so it could be used offline --- test/cassettes/channels-list-endpoint.yml | 32 +++--- test/cassettes/user-list-endpoint.yml | 67 ------------ test/cassettes/users-list-endpoint.yml | 119 ++++------------------ test/workspace_test.rb | 30 +++++- 4 files changed, 62 insertions(+), 186 deletions(-) delete mode 100644 test/cassettes/user-list-endpoint.yml diff --git a/test/cassettes/channels-list-endpoint.yml b/test/cassettes/channels-list-endpoint.yml index 5c41669e..d6129332 100644 --- a/test/cassettes/channels-list-endpoint.yml +++ b/test/cassettes/channels-list-endpoint.yml @@ -21,15 +21,15 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '690' + - '697' Connection: - keep-alive Date: - - Sat, 14 Mar 2020 23:30:20 GMT + - Mon, 16 Mar 2020 02:55:06 GMT Server: - Apache X-Slack-Req-Id: - - 83d25c15af62cac954949fa407ba8ef8 + - 28cc48420777b86626a97ba7362d9082 X-Oauth-Scopes: - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write X-Accepted-Oauth-Scopes: @@ -60,26 +60,26 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-2yq0 + - haproxy-www-erl2 X-Cache: - Miss from cloudfront Via: - - 1.1 6ca7826fb0f4c565b1af9c7737725c49.cloudfront.net (CloudFront) + - 1.1 4c48e9fb20d53d40e9fe273dbdae1099.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - UIQBP6ffd70SlKwSswWbYnQiESRDVZ434_pfKIV6sVfsCq_J5Q9MeA== + - fpPSyoo34jzbXQ8sYvYLTMMxVztNWcknwtIdYrEhkuSOl52S2arpNQ== body: encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"Company-wide + string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUTA3S16E","UV63Y1672","UUUKJ03NX","UUT9Z80AE"],"topic":{"value":"Company-wide announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUTJAGAEN","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUTA3S16E","UUW1CJZ41","UUUKJ03NX","UV63Y1672"],"topic":{"value":"Non-work + are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTJAGAEN","UUW1CJZ41","UUTA3S16E","UV63Y1672","UUUKJ03NX","UUT9Z80AE","UV3CAV859"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":7},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUW1CJZ41","UUTA3S16E","UV63Y1672","UUUKJ03NX","UUT9Z80AE"],"topic":{"value":"Non-work banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UV66LJW5A","UUT9Z80AE"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + you''d prefer to keep out of more focused work-related channels.","creator":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' http_version: null - recorded_at: Sat, 14 Mar 2020 23:30:20 GMT + recorded_at: Mon, 16 Mar 2020 02:55:06 GMT - request: method: get uri: https://slack.com/api/bogus.endpoint?token= @@ -105,7 +105,7 @@ http_interactions: Connection: - keep-alive Date: - - Mon, 16 Mar 2020 00:38:49 GMT + - Mon, 16 Mar 2020 03:01:01 GMT Server: - Apache Strict-Transport-Security: @@ -124,24 +124,24 @@ http_interactions: X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 4db145759d443b4fc88cc6c1833cee89 + - 966991ef3e9a56ecc07519ea3b0fa32a X-Xss-Protection: - '0' Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-9hkc + - haproxy-www-vmz3 X-Cache: - Miss from cloudfront Via: - - 1.1 4f3feb5c4393987d42d1971d404d7cea.cloudfront.net (CloudFront) + - 1.1 814362d7589b223cc8927cc821d97136.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C2 X-Amz-Cf-Id: - - USomVbnSnzW9I6ZFPEb26JkEUraOAz4Vdymk1YyCIiUIpqz1CHb4GA== + - ssKUWz4neKMawaMVqn-GqhPQAmpATPMnRbWQeHMb1gSoZXDI__1tpw== body: encoding: ASCII-8BIT string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' http_version: null - recorded_at: Mon, 16 Mar 2020 00:38:49 GMT + recorded_at: Mon, 16 Mar 2020 03:01:01 GMT recorded_with: VCR 5.1.0 diff --git a/test/cassettes/user-list-endpoint.yml b/test/cassettes/user-list-endpoint.yml deleted file mode 100644 index 8ed81edf..00000000 --- a/test/cassettes/user-list-endpoint.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -http_interactions: -- request: - method: get - uri: https://slack.com/api/bogus.endpoint?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: - - '80' - Connection: - - keep-alive - Date: - - Mon, 16 Mar 2020 00:55:19 GMT - Server: - - Apache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - 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 - Referrer-Policy: - - no-referrer - X-Slack-Backend: - - h - Access-Control-Expose-Headers: - - x-slack-req-id, retry-after - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - X-Slack-Req-Id: - - 913d2b7a92f4a481a264111f076551f2 - X-Xss-Protection: - - '0' - Access-Control-Allow-Origin: - - "*" - X-Via: - - haproxy-www-irjv - X-Cache: - - Miss from cloudfront - Via: - - 1.1 e66162aafd55b64ba1478ff7105150fb.cloudfront.net (CloudFront) - X-Amz-Cf-Pop: - - SEA19-C2 - X-Amz-Cf-Id: - - zLKGQbSPMNVuia_87cv2BGyKfdiTZemY64NBB9uwYrvjrNl1Q3a_hw== - body: - encoding: ASCII-8BIT - string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' - http_version: null - recorded_at: Mon, 16 Mar 2020 00:55:19 GMT -recorded_with: VCR 5.1.0 diff --git a/test/cassettes/users-list-endpoint.yml b/test/cassettes/users-list-endpoint.yml index 396ae313..51ebb744 100644 --- a/test/cassettes/users-list-endpoint.yml +++ b/test/cassettes/users-list-endpoint.yml @@ -1,85 +1,5 @@ --- http_interactions: -- request: - method: get - uri: https://slack.com/api/channels.list?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: - - '687' - Connection: - - keep-alive - Date: - - Sat, 14 Mar 2020 23:30:19 GMT - Server: - - Apache - X-Slack-Req-Id: - - 719c1337fcd7383d116ba5a44bae0a15 - X-Oauth-Scopes: - - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write - X-Accepted-Oauth-Scopes: - - channels: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-97nl - X-Cache: - - Miss from cloudfront - Via: - - 1.1 60b744e5b364d04abea9fa6686121242.cloudfront.net (CloudFront) - X-Amz-Cf-Pop: - - SEA19-C1 - X-Amz-Cf-Id: - - M9qtRXvBOOMGaNcTxzKW6eoEBEJLiq1iO0uYTua8_dSKdq2JsP4rdQ== - body: - encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CV5KRSHJQ","name":"general","is_channel":true,"created":1583868608,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"Company-wide - announcements and work-based matters","creator":"UUT9Z80AE","last_set":1583868608},"purpose":{"value":"This - channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UUT9Z80AE","last_set":1583868608},"previous_names":[],"num_members":5},{"id":"CV649DWUV","name":"slack-api","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"slack-api","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUTJAGAEN","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":6},{"id":"CV7V4KYLF","name":"random","is_channel":true,"created":1583868609,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UUW1CJZ41","UUUKJ03NX","UUTA3S16E","UV63Y1672"],"topic":{"value":"Non-work - banter and water cooler conversation","creator":"UUT9Z80AE","last_set":1583868609},"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":"UUT9Z80AE","last_set":1583868609},"previous_names":[],"num_members":5},{"id":"CVASS4US0","name":"test","is_channel":true,"created":1584050770,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUT9Z80AE","name_normalized":"test","is_shared":false,"is_org_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"members":["UUT9Z80AE","UV66LJW5A"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CVBS8GW8M","name":"dianas_test_channel","is_channel":true,"created":1584078400,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UUTA3S16E","name_normalized":"dianas_test_channel","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UUTA3S16E"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' - http_version: null - recorded_at: Sat, 14 Mar 2020 23:30:19 GMT - request: method: get uri: https://slack.com/api/bogus.endpoint?token= @@ -105,7 +25,7 @@ http_interactions: Connection: - keep-alive Date: - - Sat, 14 Mar 2020 23:30:19 GMT + - Mon, 16 Mar 2020 02:55:06 GMT Server: - Apache Strict-Transport-Security: @@ -124,26 +44,26 @@ http_interactions: X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 435ae26b4a27d6b74813380d041d7945 + - 9613d6fdca998c3ac22884e36abc5185 X-Xss-Protection: - '0' Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-lgqg + - haproxy-www-ij90 X-Cache: - Miss from cloudfront Via: - - 1.1 aabd01c4a20dae837d162bd972422efc.cloudfront.net (CloudFront) + - 1.1 6b03f32d70ff9f666371f69d2672d273.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - RLTXXm5i730gcSYFeMa-WjO9_L8d472GhlUB8ru8t_iPuWrSSdAXXQ== + - avg0UWtOMC7ByfxUlRrVuy6U4lgtl7x239PnVZuvziw6MaNoUn-7sg== body: encoding: ASCII-8BIT string: '{"ok":false,"error":"unknown_method","req_method":"bogus.endpoint"}' http_version: null - recorded_at: Sat, 14 Mar 2020 23:30:19 GMT + recorded_at: Mon, 16 Mar 2020 02:55:06 GMT - request: method: get uri: https://slack.com/api/users.list?token= @@ -165,15 +85,15 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '2157' + - '2299' Connection: - keep-alive Date: - - Sat, 14 Mar 2020 23:30:19 GMT + - Mon, 16 Mar 2020 02:55:07 GMT Server: - Apache X-Slack-Req-Id: - - 84cb2c3503d3c30038b93e6cb1e5ec86 + - 98b60b848a97607542cd3a3a9d83b926 X-Oauth-Scopes: - identify,channels:read,users:read,users.profile:read,chat:write,users:write,users.profile:write X-Accepted-Oauth-Scopes: @@ -181,7 +101,7 @@ http_interactions: Access-Control-Expose-Headers: - x-slack-req-id, retry-after X-Slack-Backend: - - r + - h X-Content-Type-Options: - nosniff Expires: @@ -204,15 +124,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-wexm + - haproxy-www-kirk X-Cache: - Miss from cloudfront Via: - - 1.1 b23fb37cd7fff033ab21e3284f558a28.cloudfront.net (CloudFront) + - 1.1 68eedbdfabd017beabf28d04341fec21.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - MPcJT5Kr-9kRwa2J_Q4in6aTnc7Bvs7WKi8Dys61tlLWE232dAVHnQ== + - XYbrcP03ciCImF70YfVxhqIfdH63U7EyV94nCpnm4MFyJ33te0fDtQ== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TV63QKAAU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -225,11 +145,12 @@ http_interactions: M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kate M","real_name_normalized":"Kate M","display_name":"Kate","display_name_normalized":"Kate","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g078604cbcfb","first_name":"Kate","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/078604cbcfb8a676a713a3a870a026f9.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583997418},{"id":"UUW1CJZ41","team_id":"TV63QKAAU","name":"yltzndnbr","deleted":false,"color":"e7392d","real_name":"Yolotzin Dunbar","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Yolotzin - Dunbar","real_name_normalized":"Yolotzin Dunbar","display_name":"Yoyo","display_name_normalized":"Yoyo","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g574a1cc3875","first_name":"Yolotzin","last_name":"Dunbar","image_24":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584083810},{"id":"UV63Y1672","team_id":"TV63QKAAU","name":"tithvorlakmok","deleted":false,"color":"674b1b","real_name":"Lak","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lak","real_name_normalized":"Lak","display_name":"Lak","display_name_normalized":"Lak","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gfc5b2d94a48","image_24":"https:\/\/secure.gravatar.com\/avatar\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583869256},{"id":"UV66LJW5A","team_id":"TV63QKAAU","name":"noras_ada_slack_api","deleted":false,"color":"684b6c","real_name":"noras_ada_slack_api","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"noras_ada_slack_api","real_name_normalized":"noras_ada_slack_api","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"9c3283af6dfc","api_app_id":"AV6LEP79B","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_original.jpg","is_custom_image":true,"bot_id":"BV8FZCLK1","first_name":"noras_ada_slack_api","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/997105289911_9c3283af6dfce4953bc5_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1583985914},{"id":"UV8PJ6R0W","team_id":"TV63QKAAU","name":"diana_slack_cli","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"diana_slack_cli","real_name_normalized":"diana_slack_cli","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"c8e976fcbc63","api_app_id":"AUWEPCVDF","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_original.jpg","is_custom_image":true,"bot_id":"BUTPL5J58","first_name":"diana_slack_cli","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"is_bot":true,"is_app_user":false,"updated":1584228234},{"id":"UVAALE528","team_id":"TV63QKAAU","name":"github","deleted":false,"color":"2b6836","real_name":"GitHub","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"GitHub","real_name_normalized":"GitHub","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"a384f3b8cb58","api_app_id":"A8GBNUWU8","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_original.png","is_custom_image":true,"bot_id":"BVAALE484","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_1024.png","status_text_canonical":"","team":"TV63QKAAU"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":true,"updated":1584036089},{"id":"UVB4TQ89M","team_id":"TV63QKAAU","name":"lak_slackapi","deleted":false,"color":"5b89d5","real_name":"lak_slackapi","tz":"America\/Los_Angeles","tz_label":"Pacific - Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"lak_slackapi","real_name_normalized":"lak_slackapi","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g6ea0fcda828","api_app_id":"AV998UM2R","always_active":false,"bot_id":"BV98UFAHE","image_24":"https:\/\/secure.gravatar.com\/avatar\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583989948}],"cache_ts":1584228619,"response_metadata":{"next_cursor":""}}' + Dunbar","real_name_normalized":"Yolotzin Dunbar","display_name":"Yoyo","display_name_normalized":"Yoyo","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g574a1cc3875","first_name":"Yolotzin","last_name":"Dunbar","image_24":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/574a1cc387525e2e334bb718a551e3a7.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584083810},{"id":"UV3CAV859","team_id":"TV63QKAAU","name":"space_kate_m_api_proj","deleted":false,"color":"99a949","real_name":"space_kate_m_api_proj","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"space_kate_m_api_proj","real_name_normalized":"space_kate_m_api_proj","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gbabfb89bbad","api_app_id":"AV22W21DG","always_active":false,"bot_id":"BV3CAV7UK","image_24":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/babfb89bbada2418eed047a5eb3a5132.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0012-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1584239628},{"id":"UV63Y1672","team_id":"TV63QKAAU","name":"tithvorlakmok","deleted":false,"color":"674b1b","real_name":"Lak","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Lak","real_name_normalized":"Lak","display_name":"Lak","display_name_normalized":"Lak","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gfc5b2d94a48","image_24":"https:\/\/secure.gravatar.com\/avatar\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.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\/fc5b2d94a48b155ada6a0aee8b0882a8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0010-512.png","status_text_canonical":"","team":"TV63QKAAU"},"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":1583869256},{"id":"UV66LJW5A","team_id":"TV63QKAAU","name":"noras_api","deleted":false,"color":"684b6c","real_name":"Nora + API","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Nora + API","real_name_normalized":"Nora API","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"46a0f74c1fda","api_app_id":"AV6LEP79B","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_original.jpg","is_custom_image":true,"bot_id":"BV8FZCLK1","first_name":"Nora","last_name":"API","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-15\/988889716034_46a0f74c1fda75680243_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"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":1584322293},{"id":"UV8PJ6R0W","team_id":"TV63QKAAU","name":"diana_slack_cli","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"diana_slack_cli","real_name_normalized":"diana_slack_cli","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"c8e976fcbc63","api_app_id":"AUWEPCVDF","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_original.jpg","is_custom_image":true,"bot_id":"BUTPL5J58","first_name":"diana_slack_cli","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-11\/983924921969_c8e976fcbc63dabe20be_1024.jpg","status_text_canonical":"","team":"TV63QKAAU"},"is_bot":true,"is_app_user":false,"updated":1584228234},{"id":"UVAALE528","team_id":"TV63QKAAU","name":"github","deleted":false,"color":"2b6836","real_name":"GitHub","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"GitHub","real_name_normalized":"GitHub","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"a384f3b8cb58","api_app_id":"A8GBNUWU8","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_original.png","is_custom_image":true,"bot_id":"BVAALE484","image_24":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-03-12\/986735341441_a384f3b8cb58f2705e8a_1024.png","status_text_canonical":"","team":"TV63QKAAU"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":true,"updated":1584036089},{"id":"UVB4TQ89M","team_id":"TV63QKAAU","name":"lak_slackapi","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"lak_slackapi","real_name_normalized":"lak_slackapi","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g6ea0fcda828","api_app_id":"AV998UM2R","always_active":false,"bot_id":"BV98UFAHE","image_24":"https:\/\/secure.gravatar.com\/avatar\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.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\/6ea0fcda82863d18be01442fb08dc35b.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"TV63QKAAU"},"is_bot":true,"is_app_user":false,"updated":1584323188}],"cache_ts":1584327307,"response_metadata":{"next_cursor":""}}' http_version: null - recorded_at: Sat, 14 Mar 2020 23:30:19 GMT + recorded_at: Mon, 16 Mar 2020 02:55:07 GMT recorded_with: VCR 5.1.0 diff --git a/test/workspace_test.rb b/test/workspace_test.rb index a80712ed..eea89ed2 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -3,8 +3,26 @@ describe "Workspace" do before do - VCR.configuration.ignore_request { true } - @workspace = Workspace.new + VCR.use_cassette("users-list-endpoint") do + VCR.use_cassette("channels-list-endpoint") do + @workspace = Workspace.new + end + end + end + + describe "Workspace instantiation" do + it "is an instance of Workspace" do + expect(@workspace).must_be_kind_of Workspace + end + + it "is set up for specific attributes" do + expect(@workspace.channels).must_be_kind_of Array + expect(@workspace.users).must_be_kind_of Array + end + + it "has default status of nil for selected" do + expect(@workspace.selected).must_equal nil + end end describe "select_user" do @@ -18,7 +36,7 @@ def @workspace.get_user_input; "USLACKBOT" end expect(@workspace.select_user).must_equal "slackbot has been selected" end - it "raises an error if user provided is not valid" do + it "provides a message if a user could not be found" do def @workspace.get_user_input; "notauser" end expect(@workspace.select_user).must_equal "User could not be found." end @@ -35,9 +53,13 @@ def @workspace.get_user_input; "CV7V4KYLF" end expect(@workspace.select_channel).must_equal "random has been selected" end - it "raises a message if a channel could not be found" do + it "provides a message if a channel could not be found" do def @workspace.get_user_input; "notachannel" end expect(@workspace.select_channel).must_equal "Channel could not be found." end end + + describe "show_details" do + + end end From 5e669c2c26e2ed5f5dadd1ab40cab1493af20b0c Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 23:42:46 -0700 Subject: [PATCH 24/25] added send message method --- lib/recipient.rb | 9 +++++++++ lib/slack.rb | 24 +++++++++++++++++++----- lib/workspace.rb | 19 ++++++++++--------- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index e9fa321d..ff010c5c 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -13,9 +13,17 @@ def initialize(slack_id:, name:) end def send_message(text) + response = HTTParty.post("https://slack.com/api/chat.postMessage", + query: {token: ENV['SLACK_TOKEN'], + channel: self.slack_id, + text: text}) + if response.code != 200 || response["ok"] == false + raise SlackAPIError, "We encountered a problem: #{response["error"]}" + end end def details + # implement in child class end @@ -36,6 +44,7 @@ def self.get(url) end def self.list_all + # to be defined in a child class end end diff --git a/lib/slack.rb b/lib/slack.rb index 6c231778..c49c681b 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -15,7 +15,8 @@ def get_user_choice (3) select user (4) select channel (5) details - (6) quit + (6) send message + (7) quit \n Selection: " @@ -29,9 +30,10 @@ def get_user_choice def main # interface layout inspired by instructor solar system implementation program_running = true + workspace = Workspace.new + while program_running - workspace = Workspace.new user_choice = get_user_choice case user_choice.downcase @@ -50,9 +52,21 @@ def main puts workspace.select_channel when "details", "5" - # TODO - - when "quit", "6" + if workspace.selected == nil + puts "No channel or user selected." + else + workspace.show_details + end + + when "send message", "6" + if workspace.selected == nil + puts "No channel or user selected." + else + print "Enter your message: " + workspace.send_message + end + + when "quit", "7" program_running = false puts "Thank you for using the Ada Slack CLI!" diff --git a/lib/workspace.rb b/lib/workspace.rb index a956c6d0..86fc64bb 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -5,11 +5,14 @@ class Workspace attr_reader :users, :channels, :selected - def initialize + def initialize() @users = User.list_all @channels = Channel.list_all @selected = nil + end + def get_user_input + gets.chomp end def select_user @@ -18,7 +21,7 @@ def select_user users.each do |user| if user.name == user_input || user.slack_id == user_input @selected = user - return "#{@selected.name} has been selected" + return "#{selected.name} has been selected" end end @@ -26,17 +29,13 @@ def select_user return "User could not be found." end - def get_user_input - gets.chomp - end - def select_channel user_input = get_user_input channels.each do |channel| if channel.name == user_input || channel.slack_id == user_input @selected = channel - return "#{@selected.name} has been selected" + return "#{selected.name} has been selected" end end @@ -45,11 +44,13 @@ def select_channel end def show_details - raise NotImplementedError, "Code this method." + @selected.details end def send_message - raise NotImplementedError, "Code this method." + text = get_user_input + + @selected.send_message(text) end end From 674ce24fb16aceda52e531c805d406516a17b94a Mon Sep 17 00:00:00 2001 From: dnguye2 Date: Sun, 15 Mar 2020 23:43:45 -0700 Subject: [PATCH 25/25] cleaned code and fixed wording of tests --- lib/channel.rb | 1 + lib/user.rb | 2 +- test/channel_test.rb | 6 +++--- test/recipient_test.rb | 27 +++++++++++++++++++++++++++ test/user_test.rb | 2 +- test/workspace_test.rb | 5 +---- 6 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 test/recipient_test.rb diff --git a/lib/channel.rb b/lib/channel.rb index f20cd965..4b034bad 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -12,6 +12,7 @@ def initialize(member_count:, topic:, name:, slack_id:) end def details + tp self, "name", "topic", "member_count", "slack_id" end # =====Class methods===== diff --git a/lib/user.rb b/lib/user.rb index 8231e2f5..461f599a 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -11,8 +11,8 @@ def initialize(real_name:, name: , slack_id:) end - def details + tp self, "name", "real_name", "slack_id" end # =====Class methods===== diff --git a/test/channel_test.rb b/test/channel_test.rb index 137136ce..7a49ae0b 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -3,11 +3,11 @@ describe "Channel" do describe "self.get" do - it "gets a list of users" do + it "gets a list of channels" do result = {} # make an API call - VCR.use_cassette("users-list-endpoint") do + VCR.use_cassette("channels-list-endpoint") do # call method you intend to use result = Channel.get("https://slack.com/api/channels.list") end @@ -18,7 +18,7 @@ end it "raises an error when a call fails" do - VCR.use_cassette("users-list-endpoint") do + VCR.use_cassette("channels-list-endpoint") do # call method you intend to use expect {Channel.get("https://slack.com/api/bogus.endpoint")}.must_raise SlackAPIError end diff --git a/test/recipient_test.rb b/test/recipient_test.rb new file mode 100644 index 00000000..630a4dbf --- /dev/null +++ b/test/recipient_test.rb @@ -0,0 +1,27 @@ +require_relative 'test_helper' +require_relative '../lib/recipient' + +describe "Recipient" do + describe "send_message" do + it "can send a message" do + result = {} + + # make an API call + VCR.use_cassette("recipients-list-endpoint") do + # call method you intend to use + result = Recipient.send_message("hi") + end + + expect(result).must_be_kind_of HTTParty::Response + expect(result["ok"]).must_equal true + + end + + it "raises an error when a call fails" do + VCR.use_cassette("recipients-list-endpoint") do + # call method you intend to use + expect {Recipient.send_message("https://slack.com/api/bogus.endpoint")}.must_raise SlackAPIError + end + end + end +end \ No newline at end of file diff --git a/test/user_test.rb b/test/user_test.rb index 72d70463..2737ea07 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -26,7 +26,7 @@ end describe "self.list_all" do - it "returns a valid list of {{users" do + it "returns a valid list of users" do result = [] VCR.use_cassette("users-list-endpoint") do diff --git a/test/workspace_test.rb b/test/workspace_test.rb index eea89ed2..20e858a7 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -1,5 +1,6 @@ require_relative 'test_helper' require_relative '../lib/workspace.rb' +require 'table_print' describe "Workspace" do before do @@ -58,8 +59,4 @@ def @workspace.get_user_input; "notachannel" end expect(@workspace.select_channel).must_equal "Channel could not be found." end end - - describe "show_details" do - - end end