From 74e0a9ee2eb261625cdd5fd1bcee477fbc846d97 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:14:19 -0700 Subject: [PATCH 01/29] updated slack.rb to acess slack workspace --- lib/slack.rb | 22 ++++++++++++++++------ test/slack_test.rb | 0 2 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 test/slack_test.rb diff --git a/lib/slack.rb b/lib/slack.rb index 960cf2f7..3aceeb56 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,11 +1,21 @@ +require "dotenv" +require "httparty" + +Dotenv.load + #!/usr/bin/env ruby -def main - puts "Welcome to the Ada Slack CLI!" +# def main +# puts "Welcome to the Ada Slack CLI!" + +# # TODO project - # TODO project +# puts "Thank you for using the Ada Slack CLI" +# end - puts "Thank you for using the Ada Slack CLI" -end +# main if __FILE__ == $PROGRAM_NAME -main if __FILE__ == $PROGRAM_NAME \ No newline at end of file +# Accessing my workspace +URL = "https://slack.com/api/users.list" +response = HTTParty.get(URL, query: {token: ENV['SLACK_API_TOKEN']}) +#p response diff --git a/test/slack_test.rb b/test/slack_test.rb new file mode 100644 index 00000000..e69de29b From c8ec539ca4b1b198a5638c728da2eb282394a595 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:17:44 -0700 Subject: [PATCH 02/29] created api_verification test and recipient class --- lib/api_verification_test.rb | 29 +++++++++++++++++++++++++++++ lib/recipient.rb | 25 +++++++++++++++++++++++++ test/recipient_test.rb | 13 +++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 lib/api_verification_test.rb create mode 100644 lib/recipient.rb create mode 100644 test/recipient_test.rb diff --git a/lib/api_verification_test.rb b/lib/api_verification_test.rb new file mode 100644 index 00000000..391d1697 --- /dev/null +++ b/lib/api_verification_test.rb @@ -0,0 +1,29 @@ +require 'dotenv' +require "httparty" +require 'pry' + +Dotenv.load + +# binding.pry + +unless ENV["SLACK_API_TOKEN"] + puts "API error." + exit +end + +url = "https://slack.com/api/channels.list" + +query_parameters = { + token: ENV["SLACK_API_TOKEN"], +} + +response = HTTParty.get(url, query: query_parameters) +#p response + +if response["ok"] == false + puts "Error." +else + response["channels"].each do |channel| + pp "Channel: #{channel["name"]}" + end +end diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..53a534f4 --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,25 @@ +require "httparty" +require 'pry' + +module Slack + class Recipient + URL = "https://slack.com/api/users.list" + attr_reader :slack_id, :name + + def initialize(slack_id, name) + @slack_id = slack_id + @name = name + end + + # def send_message(message) + # end + + # def self.get(url, query) + # query_parameters = { + # token: ENV['SLACK_API_TOKEN'] + # } + # return response = HTTParty.get(URL, query: query_parameters) + + # end + end +end diff --git a/test/recipient_test.rb b/test/recipient_test.rb new file mode 100644 index 00000000..b7ae3d95 --- /dev/null +++ b/test/recipient_test.rb @@ -0,0 +1,13 @@ +require_relative "test_helper" + +describe "Class Recipient" do + it "is an instance of Recipient" do + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient + end + + it "checks data structures at initialize" do + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient + end +end From 42ccaf64a632480a97466cabf7ffe4c9ce446d41 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:18:33 -0700 Subject: [PATCH 03/29] initialized class channel and tests --- lib/channel.rb | 25 +++++++++++++++++++++++++ test/channel_test.rb | 13 +++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 lib/channel.rb create mode 100644 test/channel_test.rb diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..7c160d2b --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,25 @@ +require_relative "../lib/recipient" +require "httparty" +require 'pry' + +module Slack + class Channel < Recipient + attr_reader :topic, :member_count + + def initialize(slack_id, name, topic = nil, member_count) + super(slack_id, name) + + @topic = topic + @member_count = member_count + end + + private + + # def details + # end + + # def self.list + # end + + end +end diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..92550047 --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1,13 @@ +require_relative "test_helper" + +describe "Class Channel" do + it "is an instance of Channel" do + channel = Slack::Channel.new("abc", "random", topic = nil, member_count = 2) + expect(channel).must_be_kind_of Slack::Channel + end + + it "checks data structures at initialize" do + channel = Slack::Channel.new("abc", "random", topic = nil, member_count = 2) + expect(channel.name).must_be_kind_of String + end +end From 87487e6e39df5012359b7424eb5fc574ac300edb Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:19:32 -0700 Subject: [PATCH 04/29] initialized class user and tests --- lib/user.rb | 27 +++++++++++++++++++++++++++ test/user_test.rb | 13 +++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/user.rb create mode 100644 test/user_test.rb diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..94810ef1 --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,27 @@ +require_relative "../lib/recipient" +require "httparty" +require 'pry' + +module Slack + class User < Recipient + attr_reader :real_name + + def initialize(slack_id, name, real_name) + super(slack_id, name) + + @real_name = real_name + end + + end +end + +# private + +# def details +# end + +# def self.list +# end + +#user = Slack::User.new("spengler") + diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..996ea287 --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1,13 @@ +require_relative "test_helper" + +describe "Class User" do + it "is an instance of User" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user).must_be_kind_of Slack::User + end + + it "checks data structures at initialize" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user.real_name).must_be_kind_of String + end +end From 865d4c0bfcfebbf95036fd24064e59a1b8c64587 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:20:40 -0700 Subject: [PATCH 05/29] initialized class workspace --- lib/workspace.rb | 26 ++++++++++++++++++++++++++ test/workplace_test.rb | 0 2 files changed, 26 insertions(+) create mode 100644 lib/workspace.rb create mode 100644 test/workplace_test.rb diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..a591c133 --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,26 @@ +module Slack + class Workspace + + attr_reader :users, :channels, :selected + + def initialize(users, channels, selected) + @users = users + @channels = channels + @selected = selected + end + + # def select_channel + # end + + # def select_user + # end + + # def show_details + # end + + # def send_message + # end + + end +end + diff --git a/test/workplace_test.rb b/test/workplace_test.rb new file mode 100644 index 00000000..e69de29b From 46153627995ff4d89f613fa0580fb9155c46b994 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:21:23 -0700 Subject: [PATCH 06/29] updated gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8d6a243f..b78e0506 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ /tmp/ # Used by dotenv library to load environment variables. -# .env +.env ## Specific to RubyMotion: .dat* From f73e4ba1923d7aae290772d1c75f9c454f25c7e3 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Tue, 10 Sep 2019 19:21:54 -0700 Subject: [PATCH 07/29] updated test_helper with relatives --- test/test_helper.rb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 90aeb408..57674e0f 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,9 +9,20 @@ require 'minitest/skip_dsl' require 'vcr' +require_relative "../lib/recipient" +require_relative "../lib/user" +require_relative "../lib/channel" +require_relative "../lib/workspace" +require_relative "../lib/slack" + Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new -VCR.configure do |config| - config.cassette_library_dir = "test/cassettes" - config.hook_into :webmock -end +# VCR.configure do |config| +# config.cassette_library_dir = "test/cassettes" +# config.hook_into :webmock + +# config.filter_sensitive_data("SLACK_API_TOKEN") do +# END["SLACK_API_TOKEN"] +# end +# end + From 1e404daa0fd133948a32220a4a3d1e4d9c17320d Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Wed, 11 Sep 2019 14:44:45 -0700 Subject: [PATCH 08/29] created methods self.get in Recipent and self.list in User and Channel --- lib/channel.rb | 31 +++++++++++++++++++++++-------- lib/recipient.rb | 20 +++++++++++++------- lib/slack.rb | 7 ------- lib/user.rb | 38 ++++++++++++++++++++++++++------------ lib/workspace.rb | 1 - test/test_helper.rb | 21 ++++++++++++--------- test/workplace_test.rb | 13 +++++++++++++ 7 files changed, 87 insertions(+), 44 deletions(-) diff --git a/lib/channel.rb b/lib/channel.rb index 7c160d2b..5d499d00 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -8,18 +8,33 @@ class Channel < Recipient def initialize(slack_id, name, topic = nil, member_count) super(slack_id, name) - @topic = topic @member_count = member_count end - private - # def details # end - # def self.list - # end - - end -end + def self.list + #CHANNEL + # URL_CLASSES = "https://slack.com/api/conversations.list" + # response = HTTParty.get(URL_CLASSES, query: {token: ENV['SLACK_API_TOKEN']}) + # p response + reponse = Channel.get("https://slack.com/api/conversations.list") + + channels = [] + response["channels"].each do |channel| + + channel_hash = {} + channel_hash[:channel_name] = channel["name"] + channel_hash[:topic] = channel["topic"]["value"] + channel_hash[:member_count] = channel["num_members"] + channel_hash[:slack_id] = channel["id"] + + channels << channel_hash + end + return channels + #p channels + end + end +end diff --git a/lib/recipient.rb b/lib/recipient.rb index 53a534f4..1a1e189c 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -11,15 +11,21 @@ def initialize(slack_id, name) @name = name end - # def send_message(message) + # def details + # raise NotImplementedError, 'Implement me in a child class!' + # end + + # def self.list + # raise NotImplementedError, 'Implement me in a child class!' # end - # def self.get(url, query) - # query_parameters = { - # token: ENV['SLACK_API_TOKEN'] - # } - # return response = HTTParty.get(URL, query: query_parameters) + def send_message(message) + end - # end + def self.get(url) + response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']} + + reponse + end end end diff --git a/lib/slack.rb b/lib/slack.rb index 3aceeb56..74042f90 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -7,15 +7,8 @@ # def main # puts "Welcome to the Ada Slack CLI!" - # # TODO project - # puts "Thank you for using the Ada Slack CLI" # end # main if __FILE__ == $PROGRAM_NAME - -# Accessing my workspace -URL = "https://slack.com/api/users.list" -response = HTTParty.get(URL, query: {token: ENV['SLACK_API_TOKEN']}) -#p response diff --git a/lib/user.rb b/lib/user.rb index 94810ef1..de602362 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -8,20 +8,34 @@ class User < Recipient def initialize(slack_id, name, real_name) super(slack_id, name) - @real_name = real_name end - end + def details + end + + def self.list + # USERS + # URL_USERS = "https://slack.com/api/users.list" + # response = HTTParty.get(URL_USERS, query: {token: ENV['SLACK_API_TOKEN']}) + #p response + + reponse = User.get("https://slack.com/api/users.list") + users = [] + + response["members"].each do |user| + + user_hash = {} + user_hash[:user_name] = user["name"] + user_hash[:real_name] = user["real_name"] + user_hash[:slack_id] = user["id"] + + users << user_hash + end + + return users + #p users + end + end end -# private - -# def details -# end - -# def self.list -# end - -#user = Slack::User.new("spengler") - diff --git a/lib/workspace.rb b/lib/workspace.rb index a591c133..fbe8771f 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -1,6 +1,5 @@ module Slack class Workspace - attr_reader :users, :channels, :selected def initialize(users, channels, selected) diff --git a/test/test_helper.rb b/test/test_helper.rb index 57674e0f..ffc610ab 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -17,12 +17,15 @@ Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new -# VCR.configure do |config| -# config.cassette_library_dir = "test/cassettes" -# config.hook_into :webmock - -# config.filter_sensitive_data("SLACK_API_TOKEN") do -# END["SLACK_API_TOKEN"] -# end -# end - +VCR.configure do |config| + config.cassette_library_dir = "test/cassettes" # folder where casettes will be located + config.hook_into :webmock # tie into this other tool called webmock + config.default_cassette_options = { + :record => :new_episodes, # record new data when we don't have it yet + :match_requests_on => [:method, :uri, :body], # The http method, URI and body of a request all need to match +} +# Don't leave our token lying around in a cassette file. +config.filter_sensitive_data('SLACK_API_TOKEN') do + ENV['SLACK_API_TOKEN'] +end +end diff --git a/test/workplace_test.rb b/test/workplace_test.rb index e69de29b..26811ab7 100644 --- a/test/workplace_test.rb +++ b/test/workplace_test.rb @@ -0,0 +1,13 @@ +require_relative "test_helper" + +describe "Class Workspace" do + it "is an instance of Workspace" do + workspace = Slack::Workspace.new([], [], []) + expect(workspace).must_be_kind_of Slack::Workspace + end + + it "checks data structures at initialize" do + workspace = Slack::Workspace.new([], [], []) + expect(workspace.users).must_be_kind_of Array + end +end From a296fd446132d38f6830f9d8213e2ba4a332996e Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Wed, 11 Sep 2019 14:47:20 -0700 Subject: [PATCH 09/29] fixed bug at recipient.rb --- lib/recipient.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index 1a1e189c..0ee53ab5 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -23,9 +23,9 @@ def send_message(message) end def self.get(url) - response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']} + response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']}) - reponse + return reponse end - end -end + end +end From a93d00742521bc2c5f554cc0fca3151effa281d0 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Wed, 11 Sep 2019 15:35:40 -0700 Subject: [PATCH 10/29] created tests with VCR for user and channel --- lib/channel.rb | 4 +- lib/recipient.rb | 2 +- lib/slack.rb | 5 + lib/user.rb | 4 +- test/cassettes/channel-info.yml | 84 ++++++++++++++ test/cassettes/recipient-info.yml | 176 ++++++++++++++++++++++++++++++ test/cassettes/user-info.yml | 95 ++++++++++++++++ test/channel_test.rb | 9 ++ test/recipient_test.rb | 16 +++ test/user_test.rb | 9 ++ 10 files changed, 399 insertions(+), 5 deletions(-) create mode 100644 test/cassettes/channel-info.yml create mode 100644 test/cassettes/recipient-info.yml create mode 100644 test/cassettes/user-info.yml diff --git a/lib/channel.rb b/lib/channel.rb index 5d499d00..79d456a8 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -1,4 +1,4 @@ -require_relative "../lib/recipient" +require_relative "recipient" require "httparty" require 'pry' @@ -20,7 +20,7 @@ def self.list # URL_CLASSES = "https://slack.com/api/conversations.list" # response = HTTParty.get(URL_CLASSES, query: {token: ENV['SLACK_API_TOKEN']}) # p response - reponse = Channel.get("https://slack.com/api/conversations.list") + response = Channel.get("https://slack.com/api/conversations.list") channels = [] response["channels"].each do |channel| diff --git a/lib/recipient.rb b/lib/recipient.rb index 0ee53ab5..81969060 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -25,7 +25,7 @@ def send_message(message) def self.get(url) response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']}) - return reponse + return response end end end diff --git a/lib/slack.rb b/lib/slack.rb index 74042f90..67e025f6 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,6 +1,11 @@ require "dotenv" require "httparty" +require_relative "recipient" +require_relative "workspace" +require_relative "user" +require_relative "channel" + Dotenv.load #!/usr/bin/env ruby diff --git a/lib/user.rb b/lib/user.rb index de602362..d5bcd8e7 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -1,4 +1,4 @@ -require_relative "../lib/recipient" +require_relative "recipient" require "httparty" require 'pry' @@ -20,7 +20,7 @@ def self.list # response = HTTParty.get(URL_USERS, query: {token: ENV['SLACK_API_TOKEN']}) #p response - reponse = User.get("https://slack.com/api/users.list") + response = User.get("https://slack.com/api/users.list") users = [] response["members"].each do |user| diff --git a/test/cassettes/channel-info.yml b/test/cassettes/channel-info.yml new file mode 100644 index 00000000..984d8907 --- /dev/null +++ b/test/cassettes/channel-info.yml @@ -0,0 +1,84 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_API_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: + - '736' + Connection: + - keep-alive + Date: + - Wed, 11 Sep 2019 22:33:28 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 660aba64-7929-445a-83e8-a3c5bc9768f0 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-z6bk + X-Cache: + - Miss from cloudfront + Via: + - 1.1 7514e5e25722778fd4b1744d4ecc67e1.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - wm_mcDbm4Ey9Ze7a250qK0KKofwXwQvzA2wg-xTTyfIlJBFa_krFvw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Wed, 11 Sep 2019 22:33:28 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml new file mode 100644 index 00000000..945dabd7 --- /dev/null +++ b/test/cassettes/recipient-info.yml @@ -0,0 +1,176 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_API_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: + - '1604' + Connection: + - keep-alive + Date: + - Wed, 11 Sep 2019 22:10:00 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 3562a1d3-23c7-45f3-a4ea-0157874a72da + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-g1op + X-Cache: + - Miss from cloudfront + Via: + - 1.1 44cd593d82a2d200a94217033c614c6a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - uXd913zQd0iNx7644pplkzs1ARj8TNXLm1DfWmLmqwjBJqf6TOtqwg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha + Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha + Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina + Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina + Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya + Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya + Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya + Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna + Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna + Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia + K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia + K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan + Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan + Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany + Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany + Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568239800,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Wed, 11 Sep 2019 22:10:00 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_API_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: + - '736' + Connection: + - keep-alive + Date: + - Wed, 11 Sep 2019 22:10:00 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - e8fd2e27-0595-415c-8359-51676abb137c + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-yx4k + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c9b161639a9353c2354b895548ea9fca.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - CdZqgeAcwxiX5pCxEp0WyioJ85F0-MHIOlhy3g8lsbholJUQWX--wg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Wed, 11 Sep 2019 22:10:01 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/user-info.yml b/test/cassettes/user-info.yml new file mode 100644 index 00000000..650ea30a --- /dev/null +++ b/test/cassettes/user-info.yml @@ -0,0 +1,95 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_API_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: + - '1605' + Connection: + - keep-alive + Date: + - Wed, 11 Sep 2019 22:29:54 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 262868cb-eab2-46d2-966f-ab2327c7340b + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-dzl1 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 705346a13f947f63c1e75e5323c5e1c2.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19 + X-Amz-Cf-Id: + - kF3CQTzyndFYmh05CDzjhr7CP6TlZ7HZwBSknPydDQse20wFSoSTnw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha + Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha + Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina + Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina + Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya + Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya + Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya + Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna + Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna + Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia + K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia + K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan + Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan + Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany + Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany + Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568240994,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Wed, 11 Sep 2019 22:29:54 GMT +recorded_with: VCR 5.0.0 diff --git a/test/channel_test.rb b/test/channel_test.rb index 92550047..bc43200f 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -11,3 +11,12 @@ expect(channel.name).must_be_kind_of String end end + +describe "method self.list" do + it "is an instance of HTTParty" do + VCR.use_cassette("channel-info") do + channel_list = Slack::Channel.list + expect(channel_list).must_be_kind_of Array + end + end +end diff --git a/test/recipient_test.rb b/test/recipient_test.rb index b7ae3d95..9e0624e3 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -11,3 +11,19 @@ expect(recipient).must_be_kind_of Slack::Recipient end end + +describe "method self.get" do + it "is returns instance of HTTParty" do + VCR.use_cassette("recipient-info") do + user = Slack::Recipient.get("https://slack.com/api/users.list") + expect(user).must_be_kind_of HTTParty::Response + end + end + + it "is returns an instance of HTTParty" do + VCR.use_cassette("recipient-info") do + channel = Slack::Recipient.get("https://slack.com/api/conversations.list") + expect(channel).must_be_kind_of HTTParty::Response + end + end +end diff --git a/test/user_test.rb b/test/user_test.rb index 996ea287..101830ec 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -11,3 +11,12 @@ expect(user.real_name).must_be_kind_of String end end + +describe "method self.list" do + it "is an instance of HTTParty" do + VCR.use_cassette("user-info") do + user_list = Slack::User.list + expect(user_list).must_be_kind_of Array + end + end +end From 654f4539ab8686fd27e8e05644b5806f48309469 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Thu, 12 Sep 2019 16:07:25 -0700 Subject: [PATCH 11/29] All wave 1 method tests passing. Added and tested wave 1 CLI requirements. Wave 1 complete. --- lib/channel.rb | 19 ++++++---- lib/recipient.rb | 4 +- lib/slack.rb | 38 ++++++++++++++----- lib/user.rb | 9 +---- lib/workspace.rb | 12 +++--- test/cassettes/channel-info.yml | 12 +++--- test/cassettes/recipient-info.yml | 26 ++++++------- test/cassettes/user-info.yml | 18 ++++----- test/channel_test.rb | 18 ++++++--- test/user_test.rb | 2 +- test/{workplace_test.rb => workspace_test.rb} | 0 11 files changed, 93 insertions(+), 65 deletions(-) rename test/{workplace_test.rb => workspace_test.rb} (100%) diff --git a/lib/channel.rb b/lib/channel.rb index 79d456a8..c7fef684 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -16,22 +16,25 @@ def initialize(slack_id, name, topic = nil, member_count) # end def self.list - #CHANNEL - # URL_CLASSES = "https://slack.com/api/conversations.list" - # response = HTTParty.get(URL_CLASSES, query: {token: ENV['SLACK_API_TOKEN']}) - # p response response = Channel.get("https://slack.com/api/conversations.list") - channels = [] + response["channels"].each do |channel| - channel_hash = {} - channel_hash[:channel_name] = channel["name"] + channel_hash[:slack_id] = channel["id"] + channel_hash[:name] = channel["name"] channel_hash[:topic] = channel["topic"]["value"] channel_hash[:member_count] = channel["num_members"] - channel_hash[:slack_id] = channel["id"] channels << channel_hash + + # channels << Channel.new( + # slack_id = channel["id"], + # name = channel["name"], + # topic = channel["topic"]["value"], + # member_count = channel["num_members"], + # ) + end return channels #p channels diff --git a/lib/recipient.rb b/lib/recipient.rb index 81969060..ebae76f4 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -19,8 +19,8 @@ def initialize(slack_id, name) # raise NotImplementedError, 'Implement me in a child class!' # end - def send_message(message) - end + # def send_message(message) + # end def self.get(url) response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']}) diff --git a/lib/slack.rb b/lib/slack.rb index 67e025f6..6ce7091e 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,19 +1,39 @@ require "dotenv" require "httparty" +require "table_print" require_relative "recipient" -require_relative "workspace" require_relative "user" require_relative "channel" +require_relative "workspace" +# !/usr/bin/env ruby Dotenv.load -#!/usr/bin/env ruby - -# def main -# puts "Welcome to the Ada Slack CLI!" -# # TODO project -# puts "Thank you for using the Ada Slack CLI" -# end +def main + + workspace = Slack::Workspace.new + + puts "Welcome to the Ada Slack CLI!" + print "Please choose an option: list users, list channels, or quit: " + input = gets.chomp + + if input == "list users" + tp workspace.users, :user_name, :real_name, :slack_id + elsif input == "list channels" + tp workspace.channels, :name, :topic, :member_count, :slack_id + elsif input == "quit" + exit + end + + + # list users = see a list of all users, including + # username, real name, and Slack ID (user.list) + # list channels = see a list of all channels, # including name, topic, member coiunt, and Slack ID (channel.list) + # quit = exit the program + + + puts "Thank you for using the Ada Slack CLI" +end -# main if __FILE__ == $PROGRAM_NAME +main if __FILE__ == $PROGRAM_NAME diff --git a/lib/user.rb b/lib/user.rb index d5bcd8e7..2099acdf 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -14,12 +14,7 @@ def initialize(slack_id, name, real_name) def details end - def self.list - # USERS - # URL_USERS = "https://slack.com/api/users.list" - # response = HTTParty.get(URL_USERS, query: {token: ENV['SLACK_API_TOKEN']}) - #p response - + def self.list response = User.get("https://slack.com/api/users.list") users = [] @@ -33,8 +28,8 @@ def self.list users << user_hash end + #binding.pry return users - #p users end end end diff --git a/lib/workspace.rb b/lib/workspace.rb index fbe8771f..71e5fc07 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -1,11 +1,14 @@ +require_relative "user" +require_relative "channel" + module Slack class Workspace attr_reader :users, :channels, :selected - def initialize(users, channels, selected) - @users = users - @channels = channels - @selected = selected + def initialize + @users = User.list + @channels = Channel.list + @selected = [] end # def select_channel @@ -19,7 +22,6 @@ def initialize(users, channels, selected) # def send_message # end - end end diff --git a/test/cassettes/channel-info.yml b/test/cassettes/channel-info.yml index 984d8907..8ffd267c 100644 --- a/test/cassettes/channel-info.yml +++ b/test/cassettes/channel-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Wed, 11 Sep 2019 22:33:28 GMT + - Thu, 12 Sep 2019 21:45:21 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 660aba64-7929-445a-83e8-a3c5bc9768f0 + - a44b9781-b7e2-4c98-83f1-d8aed6eccc0b X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-z6bk + - haproxy-www-sjev X-Cache: - Miss from cloudfront Via: - - 1.1 7514e5e25722778fd4b1744d4ecc67e1.cloudfront.net (CloudFront) + - 1.1 786d821259e050ebca76b8e357819f78.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - wm_mcDbm4Ey9Ze7a250qK0KKofwXwQvzA2wg-xTTyfIlJBFa_krFvw== + - DEQcwjiE16knJWy1qx3A1NgZopTr3nAnmf-akKXqXx3f2kKKmdQj3g== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -80,5 +80,5 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Wed, 11 Sep 2019 22:33:28 GMT + recorded_at: Thu, 12 Sep 2019 21:45:21 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml index 945dabd7..da51be49 100644 --- a/test/cassettes/recipient-info.yml +++ b/test/cassettes/recipient-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Wed, 11 Sep 2019 22:10:00 GMT + - Thu, 12 Sep 2019 21:45:21 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 3562a1d3-23c7-45f3-a4ea-0157874a72da + - 7ae4bc13-9ad6-4443-8feb-c679703eaa42 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-g1op + - haproxy-www-vh8w X-Cache: - Miss from cloudfront Via: - - 1.1 44cd593d82a2d200a94217033c614c6a.cloudfront.net (CloudFront) + - 1.1 7514e5e25722778fd4b1744d4ecc67e1.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - uXd913zQd0iNx7644pplkzs1ARj8TNXLm1DfWmLmqwjBJqf6TOtqwg== + - 2IdDAJRLB9Lvanux-PHjeSOLSoz6bpwT0dUUMGE0U3YA4bXkGWKJ4g== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -89,9 +89,9 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568239800,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568324721,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Wed, 11 Sep 2019 22:10:00 GMT + recorded_at: Thu, 12 Sep 2019 21:45:21 GMT - request: method: get uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN @@ -117,13 +117,13 @@ http_interactions: Connection: - keep-alive Date: - - Wed, 11 Sep 2019 22:10:00 GMT + - Thu, 12 Sep 2019 21:45:21 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - e8fd2e27-0595-415c-8359-51676abb137c + - 03ecc831-54e4-47b7-94fb-58a456d9f71a X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -149,15 +149,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-yx4k + - haproxy-www-xtep X-Cache: - Miss from cloudfront Via: - - 1.1 c9b161639a9353c2354b895548ea9fca.cloudfront.net (CloudFront) + - 1.1 f126db770f21f288439f44d357978a27.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - CdZqgeAcwxiX5pCxEp0WyioJ85F0-MHIOlhy3g8lsbholJUQWX--wg== + - scIhXYZgqeO9e_e3u2ikPen5kexSRO9fzMTjVFYscfpusnJnYwV5Yw== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -172,5 +172,5 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Wed, 11 Sep 2019 22:10:01 GMT + recorded_at: Thu, 12 Sep 2019 21:45:21 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/user-info.yml b/test/cassettes/user-info.yml index 650ea30a..74e55a49 100644 --- a/test/cassettes/user-info.yml +++ b/test/cassettes/user-info.yml @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1605' + - '1604' Connection: - keep-alive Date: - - Wed, 11 Sep 2019 22:29:54 GMT + - Thu, 12 Sep 2019 21:45:21 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 262868cb-eab2-46d2-966f-ab2327c7340b + - 4a8d6c5a-af2b-4db1-88e7-3848618e22a0 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-dzl1 + - haproxy-www-4oho X-Cache: - Miss from cloudfront Via: - - 1.1 705346a13f947f63c1e75e5323c5e1c2.cloudfront.net (CloudFront) + - 1.1 e9f9d4725d6328edca783d6dff756da8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19 + - SEA19-C1 X-Amz-Cf-Id: - - kF3CQTzyndFYmh05CDzjhr7CP6TlZ7HZwBSknPydDQse20wFSoSTnw== + - tQFE0-5jUZEtgWJnaI0GlqRvbihK89-iIZAKSPcthvgyBn1zXeYaiw== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -89,7 +89,7 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568240994,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568324721,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Wed, 11 Sep 2019 22:29:54 GMT + recorded_at: Thu, 12 Sep 2019 21:45:21 GMT recorded_with: VCR 5.0.0 diff --git a/test/channel_test.rb b/test/channel_test.rb index bc43200f..4c4ae699 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -2,21 +2,29 @@ describe "Class Channel" do it "is an instance of Channel" do - channel = Slack::Channel.new("abc", "random", topic = nil, member_count = 2) + channel = Slack::Channel.new("abc", "random", nil, 2) expect(channel).must_be_kind_of Slack::Channel end it "checks data structures at initialize" do - channel = Slack::Channel.new("abc", "random", topic = nil, member_count = 2) + channel = Slack::Channel.new("abc", "random", nil, 2) expect(channel.name).must_be_kind_of String end end describe "method self.list" do - it "is an instance of HTTParty" do + it "return an array of Channel Instances" do VCR.use_cassette("channel-info") do - channel_list = Slack::Channel.list - expect(channel_list).must_be_kind_of Array + channel = Slack::Channel.list + expect(channel).must_be_kind_of Array + end + end + + it "return an array of Channel Instances" do + VCR.use_cassette("channel-info") do + channel = Slack::Channel.list + expect(channel.first).must_be_kind_of Slack::Channel + expect(channel.last).must_be_kind_of Slack::Channel end end end diff --git a/test/user_test.rb b/test/user_test.rb index 101830ec..4f3366ac 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -13,7 +13,7 @@ end describe "method self.list" do - it "is an instance of HTTParty" do + it "return an array" do VCR.use_cassette("user-info") do user_list = Slack::User.list expect(user_list).must_be_kind_of Array diff --git a/test/workplace_test.rb b/test/workspace_test.rb similarity index 100% rename from test/workplace_test.rb rename to test/workspace_test.rb From a5f4665121854d7b3b5a8c782d1c4471994a8679 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Thu, 12 Sep 2019 16:22:12 -0700 Subject: [PATCH 12/29] added VCR to workspace test and uptadated tests --- lib/slack.rb | 13 +-- test/cassettes/channel-info.yml | 14 +-- test/cassettes/recipient-info.yml | 32 +++--- test/cassettes/user-info.yml | 18 +-- test/cassettes/workspace-info.yml | 176 ++++++++++++++++++++++++++++++ test/channel_test.rb | 15 +-- test/workspace_test.rb | 16 ++- 7 files changed, 231 insertions(+), 53 deletions(-) create mode 100644 test/cassettes/workspace-info.yml diff --git a/lib/slack.rb b/lib/slack.rb index 6ce7091e..9034f272 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -13,6 +13,11 @@ def main workspace = Slack::Workspace.new + # check user input + # valid_input = ["list users", "list channels", "quit"] + + # if valid_input.include?(input) + # loop to give users options again after each selection puts "Welcome to the Ada Slack CLI!" print "Please choose an option: list users, list channels, or quit: " @@ -25,14 +30,6 @@ def main elsif input == "quit" exit end - - - # list users = see a list of all users, including - # username, real name, and Slack ID (user.list) - # list channels = see a list of all channels, # including name, topic, member coiunt, and Slack ID (channel.list) - # quit = exit the program - - puts "Thank you for using the Ada Slack CLI" end diff --git a/test/cassettes/channel-info.yml b/test/cassettes/channel-info.yml index 8ffd267c..5ecc59e1 100644 --- a/test/cassettes/channel-info.yml +++ b/test/cassettes/channel-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Thu, 12 Sep 2019 21:45:21 GMT + - Thu, 12 Sep 2019 23:17:18 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - a44b9781-b7e2-4c98-83f1-d8aed6eccc0b + - e22c9df1-164e-425a-8160-0085bd72f43c X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-sjev + - haproxy-www-qj5i X-Cache: - Miss from cloudfront Via: - - 1.1 786d821259e050ebca76b8e357819f78.cloudfront.net (CloudFront) + - 1.1 d6b180eb367f7de26d67a9f3901b96a6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C1 + - SEA19-C2 X-Amz-Cf-Id: - - DEQcwjiE16knJWy1qx3A1NgZopTr3nAnmf-akKXqXx3f2kKKmdQj3g== + - s-NAWuBgz0SbeLU8V4dNf8YsHSFgwjBm-lUko3X4xpUdCU-ZAgnGbA== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -80,5 +80,5 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 21:45:21 GMT + recorded_at: Thu, 12 Sep 2019 23:17:18 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml index da51be49..3fb166b5 100644 --- a/test/cassettes/recipient-info.yml +++ b/test/cassettes/recipient-info.yml @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1604' + - '1605' Connection: - keep-alive Date: - - Thu, 12 Sep 2019 21:45:21 GMT + - Thu, 12 Sep 2019 23:17:18 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 7ae4bc13-9ad6-4443-8feb-c679703eaa42 + - 573e5b1c-1bb3-46bf-8cc1-07ad3a0433cf X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-vh8w + - haproxy-www-n83k X-Cache: - Miss from cloudfront Via: - - 1.1 7514e5e25722778fd4b1744d4ecc67e1.cloudfront.net (CloudFront) + - 1.1 61bc723adb3b1884ed759711e84e13a9.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C1 + - SEA19-C2 X-Amz-Cf-Id: - - 2IdDAJRLB9Lvanux-PHjeSOLSoz6bpwT0dUUMGE0U3YA4bXkGWKJ4g== + - kAtugKtsvOmC7g_WS6j9HrIGNz7qMB7NLmCJU_4UaIYnIWfHBbtTsg== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -89,9 +89,9 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568324721,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330238,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 21:45:21 GMT + recorded_at: Thu, 12 Sep 2019 23:17:18 GMT - request: method: get uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN @@ -117,13 +117,13 @@ http_interactions: Connection: - keep-alive Date: - - Thu, 12 Sep 2019 21:45:21 GMT + - Thu, 12 Sep 2019 23:17:18 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 03ecc831-54e4-47b7-94fb-58a456d9f71a + - dbd7e997-6e4d-4945-a93b-02fe3e1a2068 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -149,15 +149,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-xtep + - haproxy-www-gha7 X-Cache: - Miss from cloudfront Via: - - 1.1 f126db770f21f288439f44d357978a27.cloudfront.net (CloudFront) + - 1.1 7022a5bbf9872d4a09d63e6cdb457dfe.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C1 + - SEA19-C2 X-Amz-Cf-Id: - - scIhXYZgqeO9e_e3u2ikPen5kexSRO9fzMTjVFYscfpusnJnYwV5Yw== + - NYlir8l_YwHsj6ikXznNIl5Nc9eDVP3JG1wIIS8lJQMvQO8OQqYhGg== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -172,5 +172,5 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 21:45:21 GMT + recorded_at: Thu, 12 Sep 2019 23:17:18 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/user-info.yml b/test/cassettes/user-info.yml index 74e55a49..9db55f68 100644 --- a/test/cassettes/user-info.yml +++ b/test/cassettes/user-info.yml @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1604' + - '1605' Connection: - keep-alive Date: - - Thu, 12 Sep 2019 21:45:21 GMT + - Thu, 12 Sep 2019 23:17:18 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 4a8d6c5a-af2b-4db1-88e7-3848618e22a0 + - 121d6c99-6c08-4783-ba06-c288ce53c7e7 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-4oho + - haproxy-www-lx8n X-Cache: - Miss from cloudfront Via: - - 1.1 e9f9d4725d6328edca783d6dff756da8.cloudfront.net (CloudFront) + - 1.1 6172bb1a5d00a3b06ae3700570ebe117.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C1 + - SEA19-C2 X-Amz-Cf-Id: - - tQFE0-5jUZEtgWJnaI0GlqRvbihK89-iIZAKSPcthvgyBn1zXeYaiw== + - LZnNji62tVN9y8kn2ahcC7Wcttyp308Jd2U8sqQTnGRK2qgSATswVg== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -89,7 +89,7 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568324721,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330238,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 21:45:21 GMT + recorded_at: Thu, 12 Sep 2019 23:17:18 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/workspace-info.yml b/test/cassettes/workspace-info.yml new file mode 100644 index 00000000..71f9b344 --- /dev/null +++ b/test/cassettes/workspace-info.yml @@ -0,0 +1,176 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_API_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: + - '1604' + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 23:18:52 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 7c8f4fe1-4cf9-409a-a3ef-9f500e44bb42 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-aw7t + X-Cache: + - Miss from cloudfront + Via: + - 1.1 6a6653dfb47ccc5082f2a5b9d0d168ce.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - glRlTB96wd_I7l3BZxBut5VSEv4z-37ESX3axfPg2HsUR_lGDdU_nA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha + Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha + Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina + Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina + Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya + Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya + Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya + Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna + Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna + Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia + K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia + K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan + Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan + Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany + Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany + Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330332,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Thu, 12 Sep 2019 23:18:52 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_API_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: + - '736' + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 23:18:53 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 2a54c436-8594-44f7-ace7-b09a5fd45925 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-45gn + X-Cache: + - Miss from cloudfront + Via: + - 1.1 68eedbdfabd017beabf28d04341fec21.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - kw_XT9EuxVhjPaG-ZSILo_ATdSIvLzeXzM9kBOFMeezUjahgLAutbQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Thu, 12 Sep 2019 23:18:53 GMT +recorded_with: VCR 5.0.0 diff --git a/test/channel_test.rb b/test/channel_test.rb index 4c4ae699..24948378 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -20,11 +20,12 @@ end end - it "return an array of Channel Instances" do - VCR.use_cassette("channel-info") do - channel = Slack::Channel.list - expect(channel.first).must_be_kind_of Slack::Channel - expect(channel.last).must_be_kind_of Slack::Channel - end - end + # Test on hold check self.list + # it "return an array of Channel Instances" do + # VCR.use_cassette("channel-info") do + # channel = Slack::Channel.list + # expect(channel.first).must_be_kind_of Slack::Channel + # expect(channel.last).must_be_kind_of Slack::Channel + # end + # end end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 26811ab7..447833f5 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -2,12 +2,16 @@ describe "Class Workspace" do it "is an instance of Workspace" do - workspace = Slack::Workspace.new([], [], []) - expect(workspace).must_be_kind_of Slack::Workspace + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + expect(workspace).must_be_kind_of Slack::Workspace + end end it "checks data structures at initialize" do - workspace = Slack::Workspace.new([], [], []) - expect(workspace.users).must_be_kind_of Array - end -end + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + expect(workspace.users).must_be_kind_of Array + end + end +end From 638df86838fa5a48d6bac1507aed00bfe0946b7d Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Thu, 12 Sep 2019 17:34:14 -0700 Subject: [PATCH 13/29] created method select_user and tests --- lib/slack.rb | 8 +++++++- lib/workspace.rb | 39 +++++++++++++++++++++++++++++---------- test/workspace_test.rb | 36 +++++++++++++++++++++++++----------- 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 9034f272..b82e80f3 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -20,13 +20,19 @@ def main # loop to give users options again after each selection puts "Welcome to the Ada Slack CLI!" - print "Please choose an option: list users, list channels, or quit: " + print "Please choose an option: list users, list channels, select user, select channel, details, or quit: " input = gets.chomp if input == "list users" tp workspace.users, :user_name, :real_name, :slack_id elsif input == "list channels" tp workspace.channels, :name, :topic, :member_count, :slack_id + elsif input == "select user" + # supply a username or Slack ID, get back selected recipient. If no match, return to input loop + elsif input == "select channel" + # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop + elsif input == "details" + # the print out details for the currently selected recipient (info depends on whether recipient is channel or user). If no recipient selected, return to main command prompt. elsif input == "quit" exit end diff --git a/lib/workspace.rb b/lib/workspace.rb index 71e5fc07..95244c2d 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -14,14 +14,33 @@ def initialize # def select_channel # end - # def select_user - # end + def select_user(name_or_id) + @users.each do |user| + + if user["user_name"] = name_or_id + return user + end + end + + # @users.slack_id.each do |user| + # if slack_id == name_or_id + # return user + # end + # end + + + # search list of users for user name, return if match + # search list of users for ID, return if match + # if no match for name or ID, provide "not found" message and return to top of the loop + + + # def show_details + # end + + # def send_message + # end + end - # def show_details - # end - - # def send_message - # end - end -end - + end + +end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 447833f5..bf978adf 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -1,17 +1,31 @@ require_relative "test_helper" -describe "Class Workspace" do - it "is an instance of Workspace" do - VCR.use_cassette("workspace-info") do - workspace = Slack::Workspace.new - expect(workspace).must_be_kind_of Slack::Workspace +describe "Workspace" do + describe "initialize" do + it "is an instance of Workspace" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + expect(workspace).must_be_kind_of Slack::Workspace + end + end + + it "checks data structures at initialize" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + expect(workspace.users).must_be_kind_of Array + end end end - it "checks data structures at initialize" do - VCR.use_cassette("workspace-info") do - workspace = Slack::Workspace.new - expect(workspace.users).must_be_kind_of Array - end + describe "select user" do + it "returns an instance of user" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "slackbot" + + user = workspace.select_user(name_or_id) + expect(user).must_be_kind_of Hash + end + end end -end +end From 28c942eedc13920ddf71f83e8ca7bf7ea0bcf6a8 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Thu, 12 Sep 2019 20:56:29 -0700 Subject: [PATCH 14/29] Select user tests all passing --- lib/slack.rb | 1 + lib/verification.rb | 23 +++++++++++++++++++ lib/workspace.rb | 39 +++++++++++++------------------ test/channel_test.rb | 52 ++++++++++++++++++++++-------------------- test/recipient_test.rb | 50 +++++++++++++++++++++------------------- test/slack_test.rb | 3 +++ test/user_test.rb | 35 +++++++++++++++------------- test/workspace_test.rb | 26 ++++++++++++++++++--- 8 files changed, 138 insertions(+), 91 deletions(-) create mode 100644 lib/verification.rb diff --git a/lib/slack.rb b/lib/slack.rb index b82e80f3..f3cdd5eb 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -29,6 +29,7 @@ def main tp workspace.channels, :name, :topic, :member_count, :slack_id elsif input == "select user" # supply a username or Slack ID, get back selected recipient. If no match, return to input loop + elsif input == "select channel" # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop elsif input == "details" diff --git a/lib/verification.rb b/lib/verification.rb new file mode 100644 index 00000000..bd8f6b0e --- /dev/null +++ b/lib/verification.rb @@ -0,0 +1,23 @@ +require 'httparty' +require 'dotenv' + +Dotenv.load + +BASE_URL = "https://slack.com/api/channels.list" + +query_parameters = { + token: ENV['SLACK_API_TOKEN'] +} + +response = HTTParty.get(BASE_URL, query: query_parameters) + +p response + +# seven_wonders_locations = seven_wonders.map do |wonder| +# # Code to discover the location of each wonders +# query_parameters = { +# key: ENV['LOCATION_IQ_KEY'], +# q: wonder, +# format: 'JSON' +# } +# end \ No newline at end of file diff --git a/lib/workspace.rb b/lib/workspace.rb index 95244c2d..2156bc0b 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -16,31 +16,24 @@ def initialize def select_user(name_or_id) @users.each do |user| - - if user["user_name"] = name_or_id + if user.has_value?(name_or_id) return user end - end - - # @users.slack_id.each do |user| - # if slack_id == name_or_id - # return user - # end - # end - - - # search list of users for user name, return if match - # search list of users for ID, return if match - # if no match for name or ID, provide "not found" message and return to top of the loop - - - # def show_details - # end - - # def send_message - # end - end + end + puts "Sorry, I couldn't that name or ID." + end + + + # search list of users for user name, return if match + # search list of users for ID, return if match + # if no match for name or ID, provide "not found" message and return to top of the loop + + + # def show_details + # end - end + # def send_message + # end + end end diff --git a/test/channel_test.rb b/test/channel_test.rb index 24948378..fff9d165 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -1,31 +1,33 @@ require_relative "test_helper" -describe "Class Channel" do - it "is an instance of Channel" do - channel = Slack::Channel.new("abc", "random", nil, 2) - expect(channel).must_be_kind_of Slack::Channel - end - - it "checks data structures at initialize" do - channel = Slack::Channel.new("abc", "random", nil, 2) - expect(channel.name).must_be_kind_of String - end -end - -describe "method self.list" do - it "return an array of Channel Instances" do - VCR.use_cassette("channel-info") do - channel = Slack::Channel.list - expect(channel).must_be_kind_of Array +describe "Channel" do + describe "initialize" do + it "is an instance of Channel" do + channel = Slack::Channel.new("abc", "random", nil, 2) + expect(channel).must_be_kind_of Slack::Channel + end + + it "checks data structures at initialize" do + channel = Slack::Channel.new("abc", "random", nil, 2) + expect(channel.name).must_be_kind_of String end end - # Test on hold check self.list - # it "return an array of Channel Instances" do - # VCR.use_cassette("channel-info") do - # channel = Slack::Channel.list - # expect(channel.first).must_be_kind_of Slack::Channel - # expect(channel.last).must_be_kind_of Slack::Channel - # end - # end + describe "self.list" do + it "return an array of Channel Instances" do + VCR.use_cassette("channel-info") do + channel = Slack::Channel.list + expect(channel).must_be_kind_of Array + end + end + + # Test on hold check self.list + # it "return an array of Channel Instances" do + # VCR.use_cassette("channel-info") do + # channel = Slack::Channel.list + # expect(channel.first).must_be_kind_of Slack::Channel + # expect(channel.last).must_be_kind_of Slack::Channel + # end + # end + end end diff --git a/test/recipient_test.rb b/test/recipient_test.rb index 9e0624e3..e588ad14 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -1,29 +1,31 @@ require_relative "test_helper" -describe "Class Recipient" do - it "is an instance of Recipient" do - recipient = Slack::Recipient.new(1, "spongebob") - expect(recipient).must_be_kind_of Slack::Recipient - end - - it "checks data structures at initialize" do - recipient = Slack::Recipient.new(1, "spongebob") - expect(recipient).must_be_kind_of Slack::Recipient - end -end - -describe "method self.get" do - it "is returns instance of HTTParty" do - VCR.use_cassette("recipient-info") do - user = Slack::Recipient.get("https://slack.com/api/users.list") - expect(user).must_be_kind_of HTTParty::Response +describe "Recipient" do + describe "initialize" do + it "is an instance of Recipient" do + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient end - end - - it "is returns an instance of HTTParty" do - VCR.use_cassette("recipient-info") do - channel = Slack::Recipient.get("https://slack.com/api/conversations.list") - expect(channel).must_be_kind_of HTTParty::Response + + it "checks data structures at initialize" do + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient end end -end + + describe "self.get" do + it "user returns instance of HTTParty" do + VCR.use_cassette("recipient-info") do + user = Slack::Recipient.get("https://slack.com/api/users.list") + expect(user).must_be_kind_of HTTParty::Response + end + end + + it "channel returns an instance of HTTParty" do + VCR.use_cassette("recipient-info") do + channel = Slack::Recipient.get("https://slack.com/api/conversations.list") + expect(channel).must_be_kind_of HTTParty::Response + end + end + end +end \ No newline at end of file diff --git a/test/slack_test.rb b/test/slack_test.rb index e69de29b..6d961f48 100644 --- a/test/slack_test.rb +++ b/test/slack_test.rb @@ -0,0 +1,3 @@ +require_relative "test_helper" + +# test "returns a message for non-matching input" \ No newline at end of file diff --git a/test/user_test.rb b/test/user_test.rb index 4f3366ac..81dd3448 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -1,22 +1,25 @@ require_relative "test_helper" -describe "Class User" do - it "is an instance of User" do - user = Slack::User.new("CS50", "spongebob", "bob smith") - expect(user).must_be_kind_of Slack::User - end +describe "User" do - it "checks data structures at initialize" do - user = Slack::User.new("CS50", "spongebob", "bob smith") - expect(user.real_name).must_be_kind_of String - end -end - -describe "method self.list" do - it "return an array" do - VCR.use_cassette("user-info") do - user_list = Slack::User.list - expect(user_list).must_be_kind_of Array + describe "initialize" do + it "is an instance of User" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user).must_be_kind_of Slack::User + end + + it "checks data structures at initialize" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user.real_name).must_be_kind_of String end end + + describe "self.list" do + it "return an array" do + VCR.use_cassette("user-info") do + user_list = Slack::User.list + expect(user_list).must_be_kind_of Array + end + end + end end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index bf978adf..f753ed46 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -18,14 +18,34 @@ end describe "select user" do - it "returns an instance of user" do + it "returns the user hash for a matching name" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "slackbot" + user = workspace.select_user(name_or_id) + expect(user).must_be_kind_of Hash + end + end + + it "returns the user hash for a matching ID" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "USLACKBOT" + user = workspace.select_user(name_or_id) expect(user).must_be_kind_of Hash end end - end -end + + it "returns nil for non-matching input" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "nonexistentname" + + user = workspace.select_user(name_or_id) + expect(user).must_equal nil + end + end + end +end From 7eb0e64c73095bfb6e6d2f3bd50124e6dfdcaaf5 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Thu, 12 Sep 2019 22:01:41 -0700 Subject: [PATCH 15/29] Created loop for CLI that asks user to select again unless they choose to quit and added select user method to CLI. --- lib/slack.rb | 36 +++++++++++++++++++++--------------- lib/workspace.rb | 9 ++------- test/workspace_test.rb | 12 ++++++++++++ 3 files changed, 35 insertions(+), 22 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index f3cdd5eb..875c5cdb 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -20,24 +20,30 @@ def main # loop to give users options again after each selection puts "Welcome to the Ada Slack CLI!" + print "Please choose an option: list users, list channels, select user, select channel, details, or quit: " input = gets.chomp - if input == "list users" - tp workspace.users, :user_name, :real_name, :slack_id - elsif input == "list channels" - tp workspace.channels, :name, :topic, :member_count, :slack_id - elsif input == "select user" - # supply a username or Slack ID, get back selected recipient. If no match, return to input loop - - elsif input == "select channel" - # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop - elsif input == "details" - # the print out details for the currently selected recipient (info depends on whether recipient is channel or user). If no recipient selected, return to main command prompt. - elsif input == "quit" - exit + while input == "list users" || input == "list channels" || input == "select user" || input == "select channel" || input == "details" || input == "quit" + puts "Please choose an option: list users, list channels, select user, select channel, details, or quit: " + input = gets.chomp + if input == "list users" + tp workspace.users, :user_name, :real_name, :slack_id + elsif input == "list channels" + tp workspace.channels, :name, :topic, :member_count, :slack_id + elsif input == "select user" + # supply a username or Slack ID, get back selected recipient. If no match, return to input loop + print "Please enter the user name or ID: " + name_or_id = gets.chomp + puts workspace.select_user(name_or_id) + elsif input == "select channel" + # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop + elsif input == "details" + # print out details for the currently selected recipient (info depends on whether recipient is channel or user). If no recipient selected, return to main command prompt. + elsif input == "quit" + puts "Thank you for using the Ada Slack CLI" + exit + end end - puts "Thank you for using the Ada Slack CLI" end - main if __FILE__ == $PROGRAM_NAME diff --git a/lib/workspace.rb b/lib/workspace.rb index 2156bc0b..5f60fbdd 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -20,14 +20,9 @@ def select_user(name_or_id) return user end end - puts "Sorry, I couldn't that name or ID." + puts "Sorry, I couldn't find that name or ID." end - - - # search list of users for user name, return if match - # search list of users for ID, return if match - # if no match for name or ID, provide "not found" message and return to top of the loop - + # def show_details # end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index f753ed46..a62b94b7 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -48,4 +48,16 @@ end end end +end + +describe "select channel" do + it "returns the channel hash for a matching name" do + # VCR.use_cassette("workspace-info") do + # workspace = Slack::Workspace.new + # name_or_id = "slackbot" + + # user = workspace.select_user(name_or_id) + # expect(user).must_be_kind_of Hash + # end + end end From 99e7d8b7415499c2e09c7a2afa8497cc2530aa86 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Fri, 13 Sep 2019 11:28:43 -0700 Subject: [PATCH 16/29] Added tests and method for Workspace.select_channel. Updated assert nil test language for select_user. --- lib/channel.rb | 1 + lib/slack.rb | 3 ++- lib/workspace.rb | 15 ++++++++++++--- test/workspace_test.rb | 36 ++++++++++++++++++++++++++++-------- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/lib/channel.rb b/lib/channel.rb index c7fef684..9bb9e715 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -20,6 +20,7 @@ def self.list channels = [] response["channels"].each do |channel| + channel_hash = {} channel_hash[:slack_id] = channel["id"] channel_hash[:name] = channel["name"] diff --git a/lib/slack.rb b/lib/slack.rb index 875c5cdb..06535dcd 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -13,7 +13,8 @@ def main workspace = Slack::Workspace.new - # check user input + + # validate user input, if invalid, tell user to try again # valid_input = ["list users", "list channels", "quit"] # if valid_input.include?(input) diff --git a/lib/workspace.rb b/lib/workspace.rb index 5f60fbdd..cc6cab02 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -11,8 +11,14 @@ def initialize @selected = [] end - # def select_channel - # end + def select_channel(name_or_id) + @channels.each do |channel| + if channel.has_value?(name_or_id) + return channel + end + end + puts "Sorry, I couldn't find that channel." + end def select_user(name_or_id) @users.each do |user| @@ -20,11 +26,14 @@ def select_user(name_or_id) return user end end - puts "Sorry, I couldn't find that name or ID." + puts "Sorry, I couldn't find that user." end # def show_details +# When I type details, the program should print out details for the currently selected recipient. What information is printed depends on whether it's a channel or a user. +# If no recipient is currently selected, the program should let me know and return to the main command prompt. + # end # def send_message diff --git a/test/workspace_test.rb b/test/workspace_test.rb index a62b94b7..bfabb8cb 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -44,7 +44,7 @@ name_or_id = "nonexistentname" user = workspace.select_user(name_or_id) - expect(user).must_equal nil + assert_nil user end end end @@ -52,12 +52,32 @@ describe "select channel" do it "returns the channel hash for a matching name" do - # VCR.use_cassette("workspace-info") do - # workspace = Slack::Workspace.new - # name_or_id = "slackbot" - - # user = workspace.select_user(name_or_id) - # expect(user).must_be_kind_of Hash - # end + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "random" + + channel = workspace.select_channel(name_or_id) + expect(channel).must_be_kind_of Hash + end + end + + it "returns the channel hash for a matching ID" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "CMUR2JTNX" + + channel = workspace.select_channel(name_or_id) + expect(channel).must_be_kind_of Hash + end + end + + it "returns nil for non-matching input" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "nonexistentname" + + channel = workspace.select_channel(name_or_id) + assert_nil channel + end end end From e56fa6738d3f83203d7cf20965a9423d6992634c Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Fri, 13 Sep 2019 13:25:35 -0700 Subject: [PATCH 17/29] created method detais for user and channel --- lib/channel.rb | 36 ++++++++++++++++++------------------ lib/slack.rb | 10 ++++++++-- lib/user.rb | 28 +++++++++++++++++----------- lib/workspace.rb | 36 ++++++++++++++++++++---------------- 4 files changed, 63 insertions(+), 47 deletions(-) diff --git a/lib/channel.rb b/lib/channel.rb index 9bb9e715..ed7aa17f 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -12,33 +12,33 @@ def initialize(slack_id, name, topic = nil, member_count) @member_count = member_count end - # def details - # end + def details + tp self, "slack_id", "name", "topic", "member_count" + end def self.list response = Channel.get("https://slack.com/api/conversations.list") channels = [] response["channels"].each do |channel| - - channel_hash = {} - channel_hash[:slack_id] = channel["id"] - channel_hash[:name] = channel["name"] - channel_hash[:topic] = channel["topic"]["value"] - channel_hash[:member_count] = channel["num_members"] - - channels << channel_hash - - # channels << Channel.new( - # slack_id = channel["id"], - # name = channel["name"], - # topic = channel["topic"]["value"], - # member_count = channel["num_members"], - # ) - + channels << Channel.new( + slack_id = channel["id"], + name = channel["name"], + topic = channel["topic"]["value"], + member_count = channel["num_members"], + ) end return channels #p channels end end end + + +# channel_hash = {} +# channel_hash[:slack_id] = channel["id"] +# channel_hash[:name] = channel["name"] +# channel_hash[:topic] = channel["topic"]["value"] +# channel_hash[:member_count] = channel["num_members"] + +# channels << channel_hash diff --git a/lib/slack.rb b/lib/slack.rb index 06535dcd..ae92ba74 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -28,10 +28,13 @@ def main while input == "list users" || input == "list channels" || input == "select user" || input == "select channel" || input == "details" || input == "quit" puts "Please choose an option: list users, list channels, select user, select channel, details, or quit: " input = gets.chomp + if input == "list users" - tp workspace.users, :user_name, :real_name, :slack_id + tp workspace.users, "slack_id", "name", "real_name" + elsif input == "list channels" - tp workspace.channels, :name, :topic, :member_count, :slack_id + tp workspace.channels, "name", "topic", "member_count", "slack_id" + elsif input == "select user" # supply a username or Slack ID, get back selected recipient. If no match, return to input loop print "Please enter the user name or ID: " @@ -40,6 +43,8 @@ def main elsif input == "select channel" # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop elsif input == "details" + # calling + workspace.show_details # print out details for the currently selected recipient (info depends on whether recipient is channel or user). If no recipient selected, return to main command prompt. elsif input == "quit" puts "Thank you for using the Ada Slack CLI" @@ -47,4 +52,5 @@ def main end end end + main if __FILE__ == $PROGRAM_NAME diff --git a/lib/user.rb b/lib/user.rb index 2099acdf..86f6db2e 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -12,25 +12,31 @@ def initialize(slack_id, name, real_name) end def details - end + tp self, "slack_id", "name", "real_name" + end - def self.list + def self.list response = User.get("https://slack.com/api/users.list") users = [] response["members"].each do |user| + users << User.new( + slack_id = user["id"], + name = user["name"], + real_name = user["real_name"], - user_hash = {} - user_hash[:user_name] = user["name"] - user_hash[:real_name] = user["real_name"] - user_hash[:slack_id] = user["id"] - - users << user_hash + ) end - - #binding.pry + binding.pry return users + #p channels end - end + end end +# user_hash = {} +# user_hash[:user_name] = user["name"] +# user_hash[:real_name] = user["real_name"] +# user_hash[:slack_id] = user["id"] + +# users << user_hash diff --git a/lib/workspace.rb b/lib/workspace.rb index cc6cab02..fa64b5bf 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -8,36 +8,40 @@ class Workspace def initialize @users = User.list @channels = Channel.list - @selected = [] + @selected = nil end def select_channel(name_or_id) - @channels.each do |channel| - if channel.has_value?(name_or_id) - return channel - end - end - puts "Sorry, I couldn't find that channel." + @channels.each do |channel| + if channel.has_value?(name_or_id) + @select = channel + return "Channel #{@selected.name} is selected." + end + end + puts "Sorry, I couldn't find that channel." end def select_user(name_or_id) + @users.each do |user| if user.has_value?(name_or_id) - return user + # @selected = user + return "User #{user} is selected." end end puts "Sorry, I couldn't find that user." end - - # def show_details -# When I type details, the program should print out details for the currently selected recipient. What information is printed depends on whether it's a channel or a user. -# If no recipient is currently selected, the program should let me know and return to the main command prompt. - - # end + def show_details + @select.details + end + + # When I type details, the program should print out details for the currently selected recipient. What information is printed depends on whether it's a channel or a user. + # If no recipient is currently selected, the program should let me know and return to the main command prompt. - # def send_message + # # def send_message + # # end # end + end - end From ce0a3c45bd102ffc12cb39697bd919fe1ef25e48 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Fri, 13 Sep 2019 14:43:14 -0700 Subject: [PATCH 18/29] created details method and refined loop at slack.rb --- lib/recipient.rb | 13 +++++------ lib/slack.rb | 61 ++++++++++++++++++++++++++---------------------- lib/user.rb | 15 +++--------- lib/workspace.rb | 27 ++++++++++----------- 4 files changed, 54 insertions(+), 62 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index ebae76f4..5fee6beb 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -11,20 +11,19 @@ def initialize(slack_id, name) @name = name end - # def details - # raise NotImplementedError, 'Implement me in a child class!' - # end + def details + raise NotImplementedError, 'Implement me in a child class!' + end - # def self.list - # raise NotImplementedError, 'Implement me in a child class!' - # end + def self.list + raise NotImplementedError, 'Implement me in a child class!' + end # def send_message(message) # end def self.get(url) response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']}) - return response end end diff --git a/lib/slack.rb b/lib/slack.rb index ae92ba74..05ca97ce 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -11,46 +11,51 @@ Dotenv.load def main - workspace = Slack::Workspace.new - - # validate user input, if invalid, tell user to try again - # valid_input = ["list users", "list channels", "quit"] - - # if valid_input.include?(input) - # loop to give users options again after each selection - puts "Welcome to the Ada Slack CLI!" - print "Please choose an option: list users, list channels, select user, select channel, details, or quit: " - input = gets.chomp + options1 = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] + user_input = nil - while input == "list users" || input == "list channels" || input == "select user" || input == "select channel" || input == "details" || input == "quit" - puts "Please choose an option: list users, list channels, select user, select channel, details, or quit: " - input = gets.chomp + until user_input == "quit" + print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " + user_input = gets.chomp.downcase - if input == "list users" + case user_input + when "list users" tp workspace.users, "slack_id", "name", "real_name" + puts "\n" + user_input = nil - elsif input == "list channels" + when "list channels" tp workspace.channels, "name", "topic", "member_count", "slack_id" + puts "\n" + user_input = nil - elsif input == "select user" - # supply a username or Slack ID, get back selected recipient. If no match, return to input loop + when "select user" print "Please enter the user name or ID: " name_or_id = gets.chomp puts workspace.select_user(name_or_id) - elsif input == "select channel" - # supply a channel name or Slack ID, get back selected recipient. If no match, return to input loop - elsif input == "details" - # calling - workspace.show_details - # print out details for the currently selected recipient (info depends on whether recipient is channel or user). If no recipient selected, return to main command prompt. - elsif input == "quit" - puts "Thank you for using the Ada Slack CLI" - exit - end + puts "\n" + + when "select channel" + print "Please enter the channel name or ID: " + name_or_id = gets.chomp + puts workspace.select_channel(name_or_id) + puts "\n" + + when "details" + if workspace.selected == nil + puts "Please select a user or channel." + user_input = nil + puts "\n" + else + workspace.show_details + user_input = nil + puts "\n" + end + end end -end +end main if __FILE__ == $PROGRAM_NAME diff --git a/lib/user.rb b/lib/user.rb index 86f6db2e..126e42be 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -21,22 +21,13 @@ def self.list response["members"].each do |user| users << User.new( - slack_id = user["id"], - name = user["name"], - real_name = user["real_name"], - + slack_id = user["id"], + name = user["name"], + real_name = user["real_name"], ) end - binding.pry return users - #p channels end end end -# user_hash = {} -# user_hash[:user_name] = user["name"] -# user_hash[:real_name] = user["real_name"] -# user_hash[:slack_id] = user["id"] - -# users << user_hash diff --git a/lib/workspace.rb b/lib/workspace.rb index fa64b5bf..f492eadb 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -13,35 +13,32 @@ def initialize def select_channel(name_or_id) @channels.each do |channel| - if channel.has_value?(name_or_id) - @select = channel + if channel.name == name_or_id || channel.slack_id == name_or_id + @selected = channel return "Channel #{@selected.name} is selected." end end puts "Sorry, I couldn't find that channel." end - def select_user(name_or_id) - + def select_user(name_or_id) @users.each do |user| - if user.has_value?(name_or_id) - # @selected = user - return "User #{user} is selected." + if user.name == name_or_id || user.slack_id == name_or_id + @selected = user + return "User #{@selected.name} is selected." end end puts "Sorry, I couldn't find that user." end def show_details - @select.details + @selected.details end - # When I type details, the program should print out details for the currently selected recipient. What information is printed depends on whether it's a channel or a user. - # If no recipient is currently selected, the program should let me know and return to the main command prompt. - - # # def send_message - # # end - # end - + def send_message + + end end + +end end From bb5619b1eba1df9b77b8dae9b3bad27a1eb28235 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Fri, 13 Sep 2019 15:57:10 -0700 Subject: [PATCH 19/29] implemented user_message and send_message methods --- lib/recipient.rb | 16 ++++++++++++---- lib/slack.rb | 7 +++++++ lib/workspace.rb | 13 ++++++------- test/workspace_test.rb | 16 ++++++++-------- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index 5fee6beb..cc50e1cb 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -19,12 +19,20 @@ def self.list raise NotImplementedError, 'Implement me in a child class!' end - # def send_message(message) - # end - def self.get(url) response = HTTParty.get(url, query: {token: ENV['SLACK_API_TOKEN']}) return response end + + def send_message(slack_id, message) + response = HTTParty.post("https://slack.com/api/chat.postMessage", query: {token: ENV['SLACK_API_TOKEN'], channel: slack_id, text: message}) + + unless response.code == 200 + raise ArgumentError, "Message not sent." + end + return response + end end -end +end + +# slackID = CMUR2JTNX diff --git a/lib/slack.rb b/lib/slack.rb index 05ca97ce..236de97e 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -54,6 +54,13 @@ def main user_input = nil puts "\n" end + + when "send message" + print "Please enter your message: " + message = gets.chomp + slack_id = workspace.select_channel(name_or_id) + + workspace.user_message(message, slack_id) end end end diff --git a/lib/workspace.rb b/lib/workspace.rb index f492eadb..64854781 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -15,7 +15,7 @@ def select_channel(name_or_id) @channels.each do |channel| if channel.name == name_or_id || channel.slack_id == name_or_id @selected = channel - return "Channel #{@selected.name} is selected." + return "Channel #{@selected.slack_id} is selected." end end puts "Sorry, I couldn't find that channel." @@ -35,10 +35,9 @@ def show_details @selected.details end - def send_message - + def user_message(message, slack_id) + response = @selected.send_message(@selected.slack_id, message) + return puts "Ok. Message sent." end - end - -end -end + end +end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index bfabb8cb..b6903400 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -18,23 +18,23 @@ end describe "select user" do - it "returns the user hash for a matching name" do + it "returns a string for a matching name" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "slackbot" user = workspace.select_user(name_or_id) - expect(user).must_be_kind_of Hash + expect(user).must_be_kind_of String end end - it "returns the user hash for a matching ID" do + it "returns a string for a matching ID" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "USLACKBOT" user = workspace.select_user(name_or_id) - expect(user).must_be_kind_of Hash + expect(user).must_be_kind_of String end end @@ -51,23 +51,23 @@ end describe "select channel" do - it "returns the channel hash for a matching name" do + it "returns a string for a matching name" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "random" channel = workspace.select_channel(name_or_id) - expect(channel).must_be_kind_of Hash + expect(channel).must_be_kind_of String end end - it "returns the channel hash for a matching ID" do + it "returns a string for a matching ID" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "CMUR2JTNX" channel = workspace.select_channel(name_or_id) - expect(channel).must_be_kind_of Hash + expect(channel).must_be_kind_of String end end From c4be21bcd8dd9b6a9f878dc8a8cfa8138ecacc3e Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Fri, 13 Sep 2019 17:01:35 -0700 Subject: [PATCH 20/29] finished wave3, tests passing --- lib/api_verification_test.rb | 29 -------------------- lib/channel.rb | 20 ++++---------- lib/recipient.rb | 4 +-- lib/slack.rb | 10 ++++--- lib/user.rb | 3 +-- lib/verification.rb | 23 ---------------- lib/workspace.rb | 2 +- test/cassettes/user-info.yml | 16 +++++------ test/recipient_test.rb | 52 +++++++++++++++++++++--------------- test/slack_test.rb | 3 --- test/test_helper.rb | 14 +++++----- test/user_test.rb | 35 ++++++++++++++---------- test/workspace_test.rb | 11 ++++++++ 13 files changed, 91 insertions(+), 131 deletions(-) delete mode 100644 lib/api_verification_test.rb delete mode 100644 lib/verification.rb delete mode 100644 test/slack_test.rb diff --git a/lib/api_verification_test.rb b/lib/api_verification_test.rb deleted file mode 100644 index 391d1697..00000000 --- a/lib/api_verification_test.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'dotenv' -require "httparty" -require 'pry' - -Dotenv.load - -# binding.pry - -unless ENV["SLACK_API_TOKEN"] - puts "API error." - exit -end - -url = "https://slack.com/api/channels.list" - -query_parameters = { - token: ENV["SLACK_API_TOKEN"], -} - -response = HTTParty.get(url, query: query_parameters) -#p response - -if response["ok"] == false - puts "Error." -else - response["channels"].each do |channel| - pp "Channel: #{channel["name"]}" - end -end diff --git a/lib/channel.rb b/lib/channel.rb index ed7aa17f..05d99bae 100644 --- a/lib/channel.rb +++ b/lib/channel.rb @@ -22,23 +22,13 @@ def self.list response["channels"].each do |channel| channels << Channel.new( - slack_id = channel["id"], - name = channel["name"], - topic = channel["topic"]["value"], - member_count = channel["num_members"], + slack_id = channel["id"], + name = channel["name"], + topic = channel["topic"]["value"], + member_count = channel["num_members"], ) end return channels - #p channels end end -end - - -# channel_hash = {} -# channel_hash[:slack_id] = channel["id"] -# channel_hash[:name] = channel["name"] -# channel_hash[:topic] = channel["topic"]["value"] -# channel_hash[:member_count] = channel["num_members"] - -# channels << channel_hash +end diff --git a/lib/recipient.rb b/lib/recipient.rb index cc50e1cb..60152894 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -13,7 +13,7 @@ def initialize(slack_id, name) def details raise NotImplementedError, 'Implement me in a child class!' - end + end def self.list raise NotImplementedError, 'Implement me in a child class!' @@ -34,5 +34,3 @@ def send_message(slack_id, message) end end end - -# slackID = CMUR2JTNX diff --git a/lib/slack.rb b/lib/slack.rb index 236de97e..d26dcd27 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -7,15 +7,18 @@ require_relative "channel" require_relative "workspace" -# !/usr/bin/env ruby Dotenv.load def main workspace = Slack::Workspace.new puts "Welcome to the Ada Slack CLI!" - options1 = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] - user_input = nil + options = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] + user_input = gets.chomp + + # while !options.include?(user_input) + # raise ArgumentError, "Invalid input." + # end until user_input == "quit" print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " @@ -59,7 +62,6 @@ def main print "Please enter your message: " message = gets.chomp slack_id = workspace.select_channel(name_or_id) - workspace.user_message(message, slack_id) end end diff --git a/lib/user.rb b/lib/user.rb index 126e42be..515a6147 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -29,5 +29,4 @@ def self.list return users end end -end - +end diff --git a/lib/verification.rb b/lib/verification.rb deleted file mode 100644 index bd8f6b0e..00000000 --- a/lib/verification.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'httparty' -require 'dotenv' - -Dotenv.load - -BASE_URL = "https://slack.com/api/channels.list" - -query_parameters = { - token: ENV['SLACK_API_TOKEN'] -} - -response = HTTParty.get(BASE_URL, query: query_parameters) - -p response - -# seven_wonders_locations = seven_wonders.map do |wonder| -# # Code to discover the location of each wonders -# query_parameters = { -# key: ENV['LOCATION_IQ_KEY'], -# q: wonder, -# format: 'JSON' -# } -# end \ No newline at end of file diff --git a/lib/workspace.rb b/lib/workspace.rb index 64854781..b4b6fd1f 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -36,7 +36,7 @@ def show_details end def user_message(message, slack_id) - response = @selected.send_message(@selected.slack_id, message) + @selected.send_message(@selected.slack_id, message) return puts "Ok. Message sent." end end diff --git a/test/cassettes/user-info.yml b/test/cassettes/user-info.yml index 9db55f68..5ddc8d1d 100644 --- a/test/cassettes/user-info.yml +++ b/test/cassettes/user-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:17:18 GMT + - Fri, 13 Sep 2019 23:30:49 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 121d6c99-6c08-4783-ba06-c288ce53c7e7 + - 8d84ce88-25c3-4ec7-a5b7-74ec37159efd X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-lx8n + - haproxy-www-nzzu X-Cache: - Miss from cloudfront Via: - - 1.1 6172bb1a5d00a3b06ae3700570ebe117.cloudfront.net (CloudFront) + - 1.1 34f8ef0e4c880df0650a814412a26ea6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - LZnNji62tVN9y8kn2ahcC7Wcttyp308Jd2U8sqQTnGRK2qgSATswVg== + - x6nfDcGmfNYDxcjL6ztAz2mGvza-fp2Ro0je0Wfh5HD9_FL-LELboQ== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -89,7 +89,7 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330238,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568417449,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:17:18 GMT + recorded_at: Fri, 13 Sep 2019 23:30:49 GMT recorded_with: VCR 5.0.0 diff --git a/test/recipient_test.rb b/test/recipient_test.rb index e588ad14..aab1ec9b 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -3,29 +3,37 @@ describe "Recipient" do describe "initialize" do it "is an instance of Recipient" do - recipient = Slack::Recipient.new(1, "spongebob") - expect(recipient).must_be_kind_of Slack::Recipient - end - - it "checks data structures at initialize" do - recipient = Slack::Recipient.new(1, "spongebob") - expect(recipient).must_be_kind_of Slack::Recipient - end - end - - describe "self.get" do - it "user returns instance of HTTParty" do VCR.use_cassette("recipient-info") do - user = Slack::Recipient.get("https://slack.com/api/users.list") - expect(user).must_be_kind_of HTTParty::Response + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient end - end - - it "channel returns an instance of HTTParty" do - VCR.use_cassette("recipient-info") do - channel = Slack::Recipient.get("https://slack.com/api/conversations.list") - expect(channel).must_be_kind_of HTTParty::Response + end + it "checks data structures at initialize" do + VCR.use_cassette("recipient-info") do + recipient = Slack::Recipient.new(1, "spongebob") + expect(recipient).must_be_kind_of Slack::Recipient end + end + + + describe "self.get" do + it "user returns instance of HTTParty" do + VCR.use_cassette("recipient-info") do + user = Slack::Recipient.get("https://slack.com/api/users.list") + expect(user).must_be_kind_of HTTParty::Response + end + end + + it "channel returns an instance of HTTParty" do + VCR.use_cassette("recipient-info") do + channel = Slack::Recipient.get("https://slack.com/api/conversations.list") + expect(channel).must_be_kind_of HTTParty::Response + end + end + + # describe "send message" do + # it "returns " + # end end - end -end \ No newline at end of file + end +end diff --git a/test/slack_test.rb b/test/slack_test.rb deleted file mode 100644 index 6d961f48..00000000 --- a/test/slack_test.rb +++ /dev/null @@ -1,3 +0,0 @@ -require_relative "test_helper" - -# test "returns a message for non-matching input" \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index ffc610ab..8af07e58 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -21,11 +21,11 @@ config.cassette_library_dir = "test/cassettes" # folder where casettes will be located config.hook_into :webmock # tie into this other tool called webmock config.default_cassette_options = { - :record => :new_episodes, # record new data when we don't have it yet - :match_requests_on => [:method, :uri, :body], # The http method, URI and body of a request all need to match -} -# Don't leave our token lying around in a cassette file. -config.filter_sensitive_data('SLACK_API_TOKEN') do - ENV['SLACK_API_TOKEN'] -end + :record => :new_episodes, # record new data when we don't have it yet + :match_requests_on => [:method, :uri, :body], # The http method, URI and body of a request all need to match + } + # Don't leave our token lying around in a cassette file. + config.filter_sensitive_data('SLACK_API_TOKEN') do + ENV['SLACK_API_TOKEN'] + end end diff --git a/test/user_test.rb b/test/user_test.rb index 81dd3448..fe7f02f6 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -1,19 +1,6 @@ require_relative "test_helper" -describe "User" do - - describe "initialize" do - it "is an instance of User" do - user = Slack::User.new("CS50", "spongebob", "bob smith") - expect(user).must_be_kind_of Slack::User - end - - it "checks data structures at initialize" do - user = Slack::User.new("CS50", "spongebob", "bob smith") - expect(user.real_name).must_be_kind_of String - end - end - +describe "User" do describe "self.list" do it "return an array" do VCR.use_cassette("user-info") do @@ -21,5 +8,25 @@ expect(user_list).must_be_kind_of Array end end + describe "initialize" do + it "is an instance of User" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user).must_be_kind_of Slack::User + end + + it "checks data structures at initialize" do + user = Slack::User.new("CS50", "spongebob", "bob smith") + expect(user.real_name).must_be_kind_of String + end + end + + # describe "details method" do + # it "return an array" do + # #VCR.use_cassette("user-info") do + # user = Slack::User.new("CS50", "spongebob", "bob smith") + # # user_list = Slack::User.detail + # expect(user.details).must_be_kind_of String + # end + # end end end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index b6903400..77fa17bd 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -81,3 +81,14 @@ end end end + +# describe "show details method" do +# it "returns an instance of user" +# VCR.use_cassette("workspace-info") do +# workspace = Slack::Workspace.new +# #selected = user + +# selected = workspace.show_details +# expect(selected).must_be_kind_of String +# end +# end From 952b415ae0d259a0f2b9a008af3b776634c5a3a0 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 12:53:00 -0700 Subject: [PATCH 21/29] Combined select_user and select_channel into one method and updated tests. --- lib/slack.rb | 40 ++++++++++++++++---------- lib/workspace.rb | 38 ++++++++++++++---------- test/workspace_test.rb | 65 ++++++++++++++++++------------------------ 3 files changed, 75 insertions(+), 68 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index d26dcd27..80198562 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -11,18 +11,20 @@ def main workspace = Slack::Workspace.new - puts "Welcome to the Ada Slack CLI!" + puts "Welcome to the Ada Slack CLI! Press enter to continue." - options = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] - user_input = gets.chomp + # options = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] + + # print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " - # while !options.include?(user_input) - # raise ArgumentError, "Invalid input." - # end + user_input = gets.chomp until user_input == "quit" print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " user_input = gets.chomp.downcase + # while !options.include?(user_input) + # raise ArgumentError, "Sorry, I didn't understand that. Please try again." + # end case user_input when "list users" @@ -38,13 +40,13 @@ def main when "select user" print "Please enter the user name or ID: " name_or_id = gets.chomp - puts workspace.select_user(name_or_id) + puts workspace.select(name_or_id) puts "\n" when "select channel" print "Please enter the channel name or ID: " name_or_id = gets.chomp - puts workspace.select_channel(name_or_id) + puts workspace.select(name_or_id) puts "\n" when "details" @@ -59,12 +61,20 @@ def main end when "send message" - print "Please enter your message: " - message = gets.chomp - slack_id = workspace.select_channel(name_or_id) - workspace.user_message(message, slack_id) - end - end -end + if workspace.selected == nil + puts "Please select a user or channel." + user_input = nil + puts "\n" + else + print "Please enter your message: " + message = gets.chomp + slack_id = workspace.select(name_or_id) + workspace.user_message(message, slack_id) + end + else + "Sorry, I didn't understand that. Please try again." + end + end +end main if __FILE__ == $PROGRAM_NAME diff --git a/lib/workspace.rb b/lib/workspace.rb index b4b6fd1f..ec3de89f 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -11,25 +11,32 @@ def initialize @selected = nil end - def select_channel(name_or_id) + def select(name_or_id) @channels.each do |channel| if channel.name == name_or_id || channel.slack_id == name_or_id @selected = channel - return "Channel #{@selected.slack_id} is selected." - end - end - puts "Sorry, I couldn't find that channel." + return "Okay, #{@selected.name} is selected." + else + @users.each do |user| + if user.name == name_or_id || user.slack_id == name_or_id + @selected = user + return "Okay, #{@selected.name} is selected." + end + end + end + end + puts "Sorry, I couldn't find that user or channel." end - def select_user(name_or_id) - @users.each do |user| - if user.name == name_or_id || user.slack_id == name_or_id - @selected = user - return "User #{@selected.name} is selected." - end - end - puts "Sorry, I couldn't find that user." - end + # def select_user(name_or_id) + # @users.each do |user| + # if user.name == name_or_id || user.slack_id == name_or_id + # @selected = user + # return "User #{@selected.name} is selected." + # end + # end + # puts "Sorry, I couldn't find that user." + # end def show_details @selected.details @@ -37,7 +44,8 @@ def show_details def user_message(message, slack_id) @selected.send_message(@selected.slack_id, message) - return puts "Ok. Message sent." + return puts "Success! Message sent to #{@selected.name}." end + end end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 77fa17bd..6e772b79 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -17,23 +17,44 @@ end end - describe "select user" do - it "returns a string for a matching name" do + describe "select" do + it "returns a string for a matching user name" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "slackbot" - user = workspace.select_user(name_or_id) + user = workspace.select(name_or_id) expect(user).must_be_kind_of String end end - it "returns a string for a matching ID" do + + it "returns a string for a matching channel name" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "random" + + channel = workspace.select(name_or_id) + expect(channel).must_be_kind_of String + end + end + + it "returns a string for a matching user ID" do VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "USLACKBOT" - user = workspace.select_user(name_or_id) + user = workspace.select(name_or_id) + expect(user).must_be_kind_of String + end + end + + it "returns a string for a matching channel ID" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "CMUR2JTNX" + + user = workspace.select(name_or_id) expect(user).must_be_kind_of String end end @@ -43,45 +64,13 @@ workspace = Slack::Workspace.new name_or_id = "nonexistentname" - user = workspace.select_user(name_or_id) + user = workspace.select(name_or_id) assert_nil user end end end end -describe "select channel" do - it "returns a string for a matching name" do - VCR.use_cassette("workspace-info") do - workspace = Slack::Workspace.new - name_or_id = "random" - - channel = workspace.select_channel(name_or_id) - expect(channel).must_be_kind_of String - end - end - - it "returns a string for a matching ID" do - VCR.use_cassette("workspace-info") do - workspace = Slack::Workspace.new - name_or_id = "CMUR2JTNX" - - channel = workspace.select_channel(name_or_id) - expect(channel).must_be_kind_of String - end - end - - it "returns nil for non-matching input" do - VCR.use_cassette("workspace-info") do - workspace = Slack::Workspace.new - name_or_id = "nonexistentname" - - channel = workspace.select_channel(name_or_id) - assert_nil channel - end - end -end - # describe "show details method" do # it "returns an instance of user" # VCR.use_cassette("workspace-info") do From 322c4594eddbd978a08456a911e690aa23c23eb4 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 13:40:53 -0700 Subject: [PATCH 22/29] Added summary of channel and user count to beginning of CLI and a new test for Recipient.send_message --- lib/recipient.rb | 2 +- lib/slack.rb | 10 +++++++--- lib/workspace.rb | 12 +----------- test/recipient_test.rb | 16 ++++++++++++---- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index 60152894..56b4bc7a 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -28,7 +28,7 @@ def send_message(slack_id, message) response = HTTParty.post("https://slack.com/api/chat.postMessage", query: {token: ENV['SLACK_API_TOKEN'], channel: slack_id, text: message}) unless response.code == 200 - raise ArgumentError, "Message not sent." + raise ExceptionError, "Message not sent." end return response end diff --git a/lib/slack.rb b/lib/slack.rb index 80198562..ffa68441 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -11,7 +11,8 @@ def main workspace = Slack::Workspace.new - puts "Welcome to the Ada Slack CLI! Press enter to continue." + puts "\n" + puts "Welcome to the Ada Slack CLI! This Slack workspace currently has #{workspace.users.count} users and #{workspace.channels.count} channels. Press enter to continue." # options = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] @@ -59,7 +60,6 @@ def main user_input = nil puts "\n" end - when "send message" if workspace.selected == nil puts "Please select a user or channel." @@ -70,10 +70,14 @@ def main message = gets.chomp slack_id = workspace.select(name_or_id) workspace.user_message(message, slack_id) + puts "\n" end else - "Sorry, I didn't understand that. Please try again." + "Sorry, I didn't understand your requet. Please try again." + puts "\n" end + puts "Thank you for using the ADA Slack CLI!" + puts "\n" end end diff --git a/lib/workspace.rb b/lib/workspace.rb index ec3de89f..6e4d2292 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -27,17 +27,7 @@ def select(name_or_id) end puts "Sorry, I couldn't find that user or channel." end - - # def select_user(name_or_id) - # @users.each do |user| - # if user.name == name_or_id || user.slack_id == name_or_id - # @selected = user - # return "User #{@selected.name} is selected." - # end - # end - # puts "Sorry, I couldn't find that user." - # end - + def show_details @selected.details end diff --git a/test/recipient_test.rb b/test/recipient_test.rb index aab1ec9b..29e282c1 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -31,9 +31,17 @@ end end - # describe "send message" do - # it "returns " - # end + describe "send message" do + it "raises an error if invalid ID is provided" do + VCR.use_cassette("recipient-info") do + + slack_id = "INVALID" + message = "I exist only in the ether" + expect{ response = Slack::Recipient.send_message(slack_id, message) + }.must_raise Exception + end + end + end end - end + end end From b909f0ee8c49aa06318e1aa22c5ccf87d8ae5f9c Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 13:53:34 -0700 Subject: [PATCH 23/29] Added tests for Recipient.details and Recipient.self.list --- test/recipient_test.rb | 72 ++++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/test/recipient_test.rb b/test/recipient_test.rb index 29e282c1..cdf47d6d 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -8,40 +8,58 @@ expect(recipient).must_be_kind_of Slack::Recipient end end + it "checks data structures at initialize" do VCR.use_cassette("recipient-info") do recipient = Slack::Recipient.new(1, "spongebob") expect(recipient).must_be_kind_of Slack::Recipient end end + end + + describe "details" do + it "raises an error if implementation attempted within Recipient class" do + VCR.use_cassette("recipient-info") do + expect{ Slack::Recipient.details + }.must_raise Exception + end + end + end + + describe "self.list" do + it "raises an error if implementation attempted within Recipient class" do + VCR.use_cassette("recipient-info") do + expect{ Slack::Recipient.self.list + }.must_raise Exception + end + end + end + + describe "self.get" do + it "user returns instance of HTTParty" do + VCR.use_cassette("recipient-info") do + user = Slack::Recipient.get("https://slack.com/api/users.list") + expect(user).must_be_kind_of HTTParty::Response + end + end - - describe "self.get" do - it "user returns instance of HTTParty" do - VCR.use_cassette("recipient-info") do - user = Slack::Recipient.get("https://slack.com/api/users.list") - expect(user).must_be_kind_of HTTParty::Response - end - end - - it "channel returns an instance of HTTParty" do - VCR.use_cassette("recipient-info") do - channel = Slack::Recipient.get("https://slack.com/api/conversations.list") - expect(channel).must_be_kind_of HTTParty::Response - end - end - - describe "send message" do - it "raises an error if invalid ID is provided" do - VCR.use_cassette("recipient-info") do - - slack_id = "INVALID" - message = "I exist only in the ether" - expect{ response = Slack::Recipient.send_message(slack_id, message) - }.must_raise Exception - end - end - end + it "channel returns an instance of HTTParty" do + VCR.use_cassette("recipient-info") do + channel = Slack::Recipient.get("https://slack.com/api/conversations.list") + expect(channel).must_be_kind_of HTTParty::Response + end end end + + describe "send message" do + it "raises an error if invalid ID is provided" do + VCR.use_cassette("recipient-info") do + + slack_id = "INVALID" + message = "I exist only in the ether" + expect{ Slack::Recipient.send_message(slack_id, message) + }.must_raise Exception + end + end + end end From 9e07dbd71bb85b4bde13860d98b616c8560d3492 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 13:54:47 -0700 Subject: [PATCH 24/29] Updated git ignore file to include .ds_store file. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b78e0506..4c446720 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.rbc /.config /coverage/ +.ds_store /InstalledFiles /pkg/ /spec/reports/ From fadcfc297cfd598866133975125dbb829d0e54b2 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 14:05:08 -0700 Subject: [PATCH 25/29] Deleted old VCR cassette for Recipient class and continued polishing slack.rb. --- lib/slack.rb | 15 ++--- test/cassettes/recipient-info.yml | 102 +++++++++++++++--------------- 2 files changed, 55 insertions(+), 62 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index ffa68441..50718a30 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -13,19 +13,12 @@ def main workspace = Slack::Workspace.new puts "\n" puts "Welcome to the Ada Slack CLI! This Slack workspace currently has #{workspace.users.count} users and #{workspace.channels.count} channels. Press enter to continue." - - # options = ["list users", "list channels", "select user", "select channel", "details", "send message", "quit"] - - # print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " - + user_input = gets.chomp until user_input == "quit" print "Please choose an option: list users, list channels, select user, select channel, details, send message, or quit: " user_input = gets.chomp.downcase - # while !options.include?(user_input) - # raise ArgumentError, "Sorry, I didn't understand that. Please try again." - # end case user_input when "list users" @@ -73,12 +66,12 @@ def main puts "\n" end else - "Sorry, I didn't understand your requet. Please try again." + puts "Sorry, I didn't understand your request. Please try again." puts "\n" end - puts "Thank you for using the ADA Slack CLI!" - puts "\n" end + puts "Thank you for using the ADA Slack CLI!" + puts "\n" end main if __FILE__ == $PROGRAM_NAME diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml index 3fb166b5..7bcf8e8f 100644 --- a/test/cassettes/recipient-info.yml +++ b/test/cassettes/recipient-info.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: https://slack.com/api/users.list?token=SLACK_API_TOKEN + uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN body: encoding: US-ASCII string: '' @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1605' + - '736' Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:17:18 GMT + - Sat, 14 Sep 2019 20:57:34 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 573e5b1c-1bb3-46bf-8cc1-07ad3a0433cf + - 908da1bf-a987-42d9-a24b-2bfd70c2e1cb X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -43,7 +43,7 @@ http_interactions: X-Xss-Protection: - '0' X-Accepted-Oauth-Scopes: - - users:read + - channels:read,groups:read,mpim:read,im:read,read Vary: - Accept-Encoding Pragma: @@ -57,44 +57,33 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-n83k + - haproxy-www-fdpw X-Cache: - Miss from cloudfront Via: - - 1.1 61bc723adb3b1884ed759711e84e13a9.cloudfront.net (CloudFront) + - 1.1 4f3feb5c4393987d42d1971d404d7cea.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C2 X-Amz-Cf-Id: - - kAtugKtsvOmC7g_WS6j9HrIGNz7qMB7NLmCJU_4UaIYnIWfHBbtTsg== + - _wLS-Lsb7W9ddrdIWTBIuPGDnV5K2KXEoDe743HeE2lyJRzSWFd2tA== body: encoding: ASCII-8BIT - string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha - Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha - Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha - Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina - Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina - Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina - Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya - Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya - Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya - Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna - Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna - Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia - K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia - K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia - K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan - Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan - Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan - Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany - Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany - Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330238,"response_metadata":{"next_cursor":""}}' + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:17:18 GMT + recorded_at: Sat, 14 Sep 2019 20:57:34 GMT - request: method: get - uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN + uri: https://slack.com/api/users.list?token=SLACK_API_TOKEN body: encoding: US-ASCII string: '' @@ -113,17 +102,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '736' + - '1604' Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:17:18 GMT + - Sat, 14 Sep 2019 20:57:34 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - dbd7e997-6e4d-4945-a93b-02fe3e1a2068 + - f0606428-92c6-40c6-b2ce-8b7981851a10 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -135,7 +124,7 @@ http_interactions: X-Xss-Protection: - '0' X-Accepted-Oauth-Scopes: - - channels:read,groups:read,mpim:read,im:read,read + - users:read Vary: - Accept-Encoding Pragma: @@ -149,28 +138,39 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-gha7 + - haproxy-www-sjev X-Cache: - Miss from cloudfront Via: - - 1.1 7022a5bbf9872d4a09d63e6cdb457dfe.cloudfront.net (CloudFront) + - 1.1 b2f9564ebf9c745cc2ceae96d434977e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C2 X-Amz-Cf-Id: - - NYlir8l_YwHsj6ikXznNIl5Nc9eDVP3JG1wIIS8lJQMvQO8OQqYhGg== + - CzbaqVWmvzv1eBvmIKilX_zFhlJ-JrbZLmitGp5wi_8itB4bdxTB2Q== body: encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work - banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To - collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to - collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts - about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts - about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide - announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This - channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha + Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha + Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina + Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina + Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya + Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya + Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya + Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna + Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna + Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia + K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia + K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668,"has_2fa":false},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan + Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan + Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany + Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany + Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568494654,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:17:18 GMT + recorded_at: Sat, 14 Sep 2019 20:57:35 GMT recorded_with: VCR 5.0.0 From aa7ad0830a8ce470f51e8b066997ab74c967242a Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 15:11:44 -0700 Subject: [PATCH 26/29] Refined tests for Recipient.send_message --- lib/slack.rb | 2 +- test/cassettes/recipient-info.yml | 144 ++++++++++++++++++++++++++++++ test/recipient_test.rb | 32 ++++++- 3 files changed, 174 insertions(+), 4 deletions(-) diff --git a/lib/slack.rb b/lib/slack.rb index 50718a30..21ac41ca 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -13,7 +13,7 @@ def main workspace = Slack::Workspace.new puts "\n" puts "Welcome to the Ada Slack CLI! This Slack workspace currently has #{workspace.users.count} users and #{workspace.channels.count} channels. Press enter to continue." - + user_input = gets.chomp until user_input == "quit" diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml index 7bcf8e8f..1597e82d 100644 --- a/test/cassettes/recipient-info.yml +++ b/test/cassettes/recipient-info.yml @@ -173,4 +173,148 @@ http_interactions: Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568494654,"response_metadata":{"next_cursor":""}}' http_version: recorded_at: Sat, 14 Sep 2019 20:57:35 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=USLACKBOT&text=Woe%20upon%20your%20Cylon%20heart.&token=SLACK_API_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '188' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 21:19:02 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 660a324e-134e-4fe3-8d3d-c17471b03dbf + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-u9rp + X-Cache: + - Miss from cloudfront + Via: + - 1.1 2241406ac19fffc8f35d6ddef8e22f56.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - xJYXO0t4zGbw_Bmm1KBELOM_CkrAl2HMGLNwITZEQZtwCsDF_5XErA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DN8S5J2F2","ts":"1568495942.000100","message":{"type":"message","subtype":"bot_message","text":"Woe + upon your Cylon heart.","ts":"1568495942.000100","username":"Leaves - Julia + K - API Project","bot_id":"BN8FYF5UN"}}' + http_version: + recorded_at: Sat, 14 Sep 2019 21:19:02 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=INVALID&text=I%20exist%20only%20in%20the%20ether.&token=SLACK_API_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '60' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 21:58:00 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 1409daa9-4a77-4bc6-bdd6-11d91d6ae672 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-x0x4 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 aa623e134417515bd2496cb01d5e5626.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - OY5tCeCzco2szKkifVTGHSb2CtqbY5ukx1zvyijttjmMT_22MsKc4A== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"channel_not_found"}' + http_version: + recorded_at: Sat, 14 Sep 2019 21:58:00 GMT recorded_with: VCR 5.0.0 diff --git a/test/recipient_test.rb b/test/recipient_test.rb index cdf47d6d..b2b1d78e 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -25,7 +25,7 @@ end end end - + describe "self.list" do it "raises an error if implementation attempted within Recipient class" do VCR.use_cassette("recipient-info") do @@ -56,10 +56,36 @@ VCR.use_cassette("recipient-info") do slack_id = "INVALID" - message = "I exist only in the ether" + message = "I exist only in the ether." + + expect{ Slack::Recipient.send_message(slack_id, message) + }.must_raise Exception + end + end + + it "raises an error if response code isn't 200" do + VCR.use_cassette("recipient-info") do + + slack_id = "USLACKBOT" + message = "Woe upon your Cylon heart." + { "ok": false, "error": "too_many_attachments" } + expect{ Slack::Recipient.send_message(slack_id, message) }.must_raise Exception end end - end + + it "returns an instance of HTTParty when successful" do + VCR.use_cassette("recipient-info") do + + slack_id = "USLACKBOT" + message = "Woe upon your Cylon heart." + + api_response = HTTParty.post("https://slack.com/api/chat.postMessage", query: {token: ENV['SLACK_API_TOKEN'], channel: slack_id, text: message}) + + expect(api_response).must_be_kind_of HTTParty::Response + end + end + end + end From a8e70c38b805c64a6730c60d9f3cde85c6ff9e6a Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 17:11:51 -0700 Subject: [PATCH 27/29] Added tests to beef up coverage report, which is now at 94 percent or above for user, recipient, channel, and workspace. --- lib/recipient.rb | 6 +- lib/workspace.rb | 4 +- test/cassettes/channel-info.yml | 14 +- test/cassettes/recipient-info.yml | 163 +++++------------- test/cassettes/user-info.yml | 18 +- test/cassettes/workspace-info.yml | 278 ++++++++++++++++++++++++++++-- test/recipient_test.rb | 11 +- test/workspace_test.rb | 47 +++-- 8 files changed, 370 insertions(+), 171 deletions(-) diff --git a/lib/recipient.rb b/lib/recipient.rb index 56b4bc7a..354a28a1 100644 --- a/lib/recipient.rb +++ b/lib/recipient.rb @@ -1,6 +1,8 @@ require "httparty" require 'pry' +class API_Error < StandardError +end module Slack class Recipient URL = "https://slack.com/api/users.list" @@ -12,11 +14,11 @@ def initialize(slack_id, name) end def details - raise NotImplementedError, 'Implement me in a child class!' + raise API_Error.new, 'Implement me in a child class!' end def self.list - raise NotImplementedError, 'Implement me in a child class!' + raise API_Error.new, 'Implement me in a child class!' end def self.get(url) diff --git a/lib/workspace.rb b/lib/workspace.rb index 6e4d2292..df8831a8 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -27,9 +27,9 @@ def select(name_or_id) end puts "Sorry, I couldn't find that user or channel." end - + def show_details - @selected.details + return @selected.details end def user_message(message, slack_id) diff --git a/test/cassettes/channel-info.yml b/test/cassettes/channel-info.yml index 5ecc59e1..26169781 100644 --- a/test/cassettes/channel-info.yml +++ b/test/cassettes/channel-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:17:18 GMT + - Sat, 14 Sep 2019 22:14:10 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - e22c9df1-164e-425a-8160-0085bd72f43c + - 5adecfe4-0df6-4f44-8961-cbf25b1fb0e8 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,15 +57,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-qj5i + - haproxy-www-1ir4 X-Cache: - Miss from cloudfront Via: - - 1.1 d6b180eb367f7de26d67a9f3901b96a6.cloudfront.net (CloudFront) + - 1.1 1f6e68152880a39d72e6bf2996cd6a61.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - s-NAWuBgz0SbeLU8V4dNf8YsHSFgwjBm-lUko3X4xpUdCU-ZAgnGbA== + - RyLCQM_WwLWaeyQ5TKpGPXNBI1iYl42Q2nJt1AxfV0GJik5uH5M6iw== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -80,5 +80,5 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:17:18 GMT + recorded_at: Sat, 14 Sep 2019 22:14:10 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/recipient-info.yml b/test/cassettes/recipient-info.yml index 1597e82d..69cde395 100644 --- a/test/cassettes/recipient-info.yml +++ b/test/cassettes/recipient-info.yml @@ -1,10 +1,10 @@ --- http_interactions: - request: - method: get - uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN + method: post + uri: https://slack.com/api/chat.postMessage?channel=USLACKBOT&text=Woe%20upon%20your%20Cylon%20heart.&token=SLACK_API_TOKEN body: - encoding: US-ASCII + encoding: UTF-8 string: '' headers: Accept-Encoding: @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '736' + - '188' Connection: - keep-alive Date: - - Sat, 14 Sep 2019 20:57:34 GMT + - Sat, 14 Sep 2019 22:14:10 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 908da1bf-a987-42d9-a24b-2bfd70c2e1cb + - 3c358ea1-883c-4ea6-8227-350e83f747a3 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -43,7 +43,7 @@ http_interactions: X-Xss-Protection: - '0' X-Accepted-Oauth-Scopes: - - channels:read,groups:read,mpim:read,im:read,read + - chat:write:bot Vary: - Accept-Encoding Pragma: @@ -57,30 +57,22 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-fdpw + - haproxy-www-4phi X-Cache: - Miss from cloudfront Via: - - 1.1 4f3feb5c4393987d42d1971d404d7cea.cloudfront.net (CloudFront) + - 1.1 2e20768704c71ff3ce2e677251d27f3c.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - _wLS-Lsb7W9ddrdIWTBIuPGDnV5K2KXEoDe743HeE2lyJRzSWFd2tA== + - s_Gfs1fBeeL7UxD-XZhSGXr9z-7GMwAM6bvLaOHr5ceGPsvBdx0EFA== body: encoding: ASCII-8BIT - string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work - banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To - collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to - collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts - about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts - about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide - announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This - channel is for workspace-wide communication and announcements. All members - are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + string: '{"ok":true,"channel":"DN8S5J2F2","ts":"1568499250.000200","message":{"type":"message","subtype":"bot_message","text":"Woe + upon your Cylon heart.","ts":"1568499250.000200","username":"Leaves - Julia + K - API Project","bot_id":"BN8FYF5UN"}}' http_version: - recorded_at: Sat, 14 Sep 2019 20:57:34 GMT + recorded_at: Sat, 14 Sep 2019 22:14:10 GMT - request: method: get uri: https://slack.com/api/users.list?token=SLACK_API_TOKEN @@ -102,17 +94,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1604' + - '1605' Connection: - keep-alive Date: - - Sat, 14 Sep 2019 20:57:34 GMT + - Sat, 14 Sep 2019 22:14:10 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - f0606428-92c6-40c6-b2ce-8b7981851a10 + - 2c8f6a8b-f950-46c9-901b-097ffd6e823c X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -138,15 +130,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-sjev + - haproxy-www-xtep X-Cache: - Miss from cloudfront Via: - - 1.1 b2f9564ebf9c745cc2ceae96d434977e.cloudfront.net (CloudFront) + - 1.1 1570d93226c1bbca2ebaad510cff3e0d.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - - SEA19-C2 + - SEA19-C1 X-Amz-Cf-Id: - - CzbaqVWmvzv1eBvmIKilX_zFhlJ-JrbZLmitGp5wi_8itB4bdxTB2Q== + - "-i775E1GkmDTw819JMyXKpYvN72wBDPvcpZPKpEloKQ0CIiwyleBzA==" body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific @@ -170,87 +162,14 @@ http_interactions: Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568494654,"response_metadata":{"next_cursor":""}}' - http_version: - recorded_at: Sat, 14 Sep 2019 20:57:35 GMT -- request: - method: post - uri: https://slack.com/api/chat.postMessage?channel=USLACKBOT&text=Woe%20upon%20your%20Cylon%20heart.&token=SLACK_API_TOKEN - body: - encoding: UTF-8 - string: '' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - User-Agent: - - Ruby - response: - status: - code: 200 - message: OK - headers: - Content-Type: - - application/json; charset=utf-8 - Content-Length: - - '188' - Connection: - - keep-alive - Date: - - Sat, 14 Sep 2019 21:19:02 GMT - Server: - - Apache - X-Content-Type-Options: - - nosniff - X-Slack-Req-Id: - - 660a324e-134e-4fe3-8d3d-c17471b03dbf - X-Oauth-Scopes: - - identify,channels:read,users:read,chat:write:bot - Expires: - - Mon, 26 Jul 1997 05:00:00 GMT - Cache-Control: - - private, no-cache, no-store, must-revalidate - Access-Control-Expose-Headers: - - x-slack-req-id, retry-after - X-Xss-Protection: - - '0' - X-Accepted-Oauth-Scopes: - - chat:write:bot - Vary: - - Accept-Encoding - Pragma: - - no-cache - Access-Control-Allow-Headers: - - slack-route, x-slack-version-ts - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - Referrer-Policy: - - no-referrer - Access-Control-Allow-Origin: - - "*" - X-Via: - - haproxy-www-u9rp - X-Cache: - - Miss from cloudfront - Via: - - 1.1 2241406ac19fffc8f35d6ddef8e22f56.cloudfront.net (CloudFront) - X-Amz-Cf-Pop: - - SEA19-C1 - X-Amz-Cf-Id: - - xJYXO0t4zGbw_Bmm1KBELOM_CkrAl2HMGLNwITZEQZtwCsDF_5XErA== - body: - encoding: ASCII-8BIT - string: '{"ok":true,"channel":"DN8S5J2F2","ts":"1568495942.000100","message":{"type":"message","subtype":"bot_message","text":"Woe - upon your Cylon heart.","ts":"1568495942.000100","username":"Leaves - Julia - K - API Project","bot_id":"BN8FYF5UN"}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568499250,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Sat, 14 Sep 2019 21:19:02 GMT + recorded_at: Sat, 14 Sep 2019 22:14:11 GMT - request: - method: post - uri: https://slack.com/api/chat.postMessage?channel=INVALID&text=I%20exist%20only%20in%20the%20ether.&token=SLACK_API_TOKEN + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN body: - encoding: UTF-8 + encoding: US-ASCII string: '' headers: Accept-Encoding: @@ -267,17 +186,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '60' + - '736' Connection: - keep-alive Date: - - Sat, 14 Sep 2019 21:58:00 GMT + - Sat, 14 Sep 2019 22:14:11 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 1409daa9-4a77-4bc6-bdd6-11d91d6ae672 + - d84fe2e2-107f-4564-89d8-0a55735933aa X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -289,7 +208,7 @@ http_interactions: X-Xss-Protection: - '0' X-Accepted-Oauth-Scopes: - - chat:write:bot + - channels:read,groups:read,mpim:read,im:read,read Vary: - Accept-Encoding Pragma: @@ -303,18 +222,28 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-x0x4 + - haproxy-www-wfx1 X-Cache: - Miss from cloudfront Via: - - 1.1 aa623e134417515bd2496cb01d5e5626.cloudfront.net (CloudFront) + - 1.1 deaaf0548506de20925615eb51a7ea7f.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - OY5tCeCzco2szKkifVTGHSb2CtqbY5ukx1zvyijttjmMT_22MsKc4A== + - xbXQd3GXIZFI2we3ajmGAPUY0EPUsVutltzuxY9ATNmmc7X_JQVD-Q== body: encoding: ASCII-8BIT - string: '{"ok":false,"error":"channel_not_found"}' + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Sat, 14 Sep 2019 21:58:00 GMT + recorded_at: Sat, 14 Sep 2019 22:14:11 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/user-info.yml b/test/cassettes/user-info.yml index 5ddc8d1d..7a36b677 100644 --- a/test/cassettes/user-info.yml +++ b/test/cassettes/user-info.yml @@ -25,13 +25,13 @@ http_interactions: Connection: - keep-alive Date: - - Fri, 13 Sep 2019 23:30:49 GMT + - Sat, 14 Sep 2019 22:14:11 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 8d84ce88-25c3-4ec7-a5b7-74ec37159efd + - 067b8a7f-9385-467d-a620-e156afaa1694 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,22 +57,22 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-nzzu + - haproxy-www-uoee X-Cache: - Miss from cloudfront Via: - - 1.1 34f8ef0e4c880df0650a814412a26ea6.cloudfront.net (CloudFront) + - 1.1 b48dedcc55e63f14261aa92cf2d61522.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - x6nfDcGmfNYDxcjL6ztAz2mGvza-fp2Ro0je0Wfh5HD9_FL-LELboQ== + - ZUOwJPtWzJ_AGuNCnJpegBOnAWARSe7sJklx-R9mNdUUjYUondVYTQ== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha - Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya @@ -83,13 +83,13 @@ http_interactions: Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia - K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668,"has_2fa":false},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568417449,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568499251,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Fri, 13 Sep 2019 23:30:49 GMT + recorded_at: Sat, 14 Sep 2019 22:14:11 GMT recorded_with: VCR 5.0.0 diff --git a/test/cassettes/workspace-info.yml b/test/cassettes/workspace-info.yml index 71f9b344..5a536c81 100644 --- a/test/cassettes/workspace-info.yml +++ b/test/cassettes/workspace-info.yml @@ -21,17 +21,17 @@ http_interactions: Content-Type: - application/json; charset=utf-8 Content-Length: - - '1604' + - '1605' Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:18:52 GMT + - Sat, 14 Sep 2019 22:14:10 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 7c8f4fe1-4cf9-409a-a3ef-9f500e44bb42 + - 8d4fcbff-4078-40fc-bdc7-e4cb34671876 X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -57,22 +57,22 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-aw7t + - haproxy-www-kftm X-Cache: - Miss from cloudfront Via: - - 1.1 6a6653dfb47ccc5082f2a5b9d0d168ce.cloudfront.net (CloudFront) + - 1.1 3a6260aec53985f2e6eb8a637c47918d.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - glRlTB96wd_I7l3BZxBut5VSEv4z-37ESX3axfPg2HsUR_lGDdU_nA== + - bn9R2GMe7oaWV4qyguFoLww3w5BmxziLHayEqHEvdzbwLadpy7C6sg== body: encoding: ASCII-8BIT string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha - Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698,"has_2fa":false},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya @@ -83,15 +83,15 @@ http_interactions: Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia - K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668,"has_2fa":false},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany - Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568330332,"response_metadata":{"next_cursor":""}}' + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568499250,"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:18:52 GMT + recorded_at: Sat, 14 Sep 2019 22:14:10 GMT - request: method: get uri: https://slack.com/api/conversations.list?token=SLACK_API_TOKEN @@ -117,13 +117,13 @@ http_interactions: Connection: - keep-alive Date: - - Thu, 12 Sep 2019 23:18:53 GMT + - Sat, 14 Sep 2019 22:14:10 GMT Server: - Apache X-Content-Type-Options: - nosniff X-Slack-Req-Id: - - 2a54c436-8594-44f7-ace7-b09a5fd45925 + - d61f8ec0-128b-4610-b259-9f653b3d454c X-Oauth-Scopes: - identify,channels:read,users:read,chat:write:bot Expires: @@ -149,15 +149,15 @@ http_interactions: Access-Control-Allow-Origin: - "*" X-Via: - - haproxy-www-45gn + - haproxy-www-x62j X-Cache: - Miss from cloudfront Via: - - 1.1 68eedbdfabd017beabf28d04341fec21.cloudfront.net (CloudFront) + - 1.1 42ef990e439ae115ff739f04e3945234.cloudfront.net (CloudFront) X-Amz-Cf-Pop: - SEA19-C1 X-Amz-Cf-Id: - - kw_XT9EuxVhjPaG-ZSILo_ATdSIvLzeXzM9kBOFMeezUjahgLAutbQ== + - UyBFqQsXPkPgPRq3Cxvd4lhFcMwdXnQqiqyAexYYpyQwSOAZUsp7VQ== body: encoding: ASCII-8BIT string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work @@ -172,5 +172,251 @@ http_interactions: channel is for workspace-wide communication and announcements. All members are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' http_version: - recorded_at: Thu, 12 Sep 2019 23:18:53 GMT + recorded_at: Sat, 14 Sep 2019 22:14:10 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=SLACK_API_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: + - '1605' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 22:21:27 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - c378ce1a-979b-458f-9593-7d81617251b9 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-gxt6 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 b4085435efbe95a420f374958bd145bf.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - 82pfDG1y_nkEaBWfP3NkObY4ldjiyn0dwZLVml-U80xJCt_5z9VKxQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN69AJ2SU","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":"TN69AJ2SU"},"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":"UMTG0S5D0","team_id":"TN69AJ2SU","name":"samantha.collares","deleted":false,"color":"674b1b","real_name":"Samantha + Collares","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Samantha + Collares","real_name_normalized":"Samantha Collares","display_name":"Samantha + Collares","display_name_normalized":"Samantha Collares","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge444d412eed","image_24":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e444d412eed1a77c04bbf0fb2c43d8b8.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0008-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071698},{"id":"UMUR43REX","team_id":"TN69AJ2SU","name":"sabrina","deleted":false,"color":"e7392d","real_name":"Sabrina + Lowney","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Sabrina + Lowney","real_name_normalized":"Sabrina Lowney","display_name":"Sabrina Lowney","display_name_normalized":"Sabrina + Lowney","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3826fd588f7","image_24":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3826fd588f7f72df044c1512a719f733.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0013-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071592},{"id":"UMZSUVBED","team_id":"TN69AJ2SU","name":"mariya.burrows","deleted":false,"color":"e96699","real_name":"Mariya + Burrows","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Mariya + Burrows","real_name_normalized":"Mariya Burrows","display_name":"Mariya Burrows","display_name_normalized":"Mariya + Burrows","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g742995f6521","image_24":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/742995f6521248254aa31fc269323b35.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0001-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071452},{"id":"UN5R273J8","team_id":"TN69AJ2SU","name":"dtingg","deleted":false,"color":"9f69e7","real_name":"Dianna + Tingg","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Dianna + Tingg","real_name_normalized":"Dianna Tingg","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g18e16502755","first_name":"Dianna","last_name":"Tingg","image_24":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/18e16502755f0b33603d2f0476f51f79.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0024-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071477},{"id":"UN5R3N6P6","team_id":"TN69AJ2SU","name":"juliakingreyworks","deleted":false,"color":"3c989f","real_name":"Julia + K","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Julia + K","real_name_normalized":"Julia K","display_name":"Julia K","display_name_normalized":"Julia + K","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g8ae03401380","image_24":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8ae034013803a39e79167e24e08629fc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0003-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071668,"has_2fa":false},{"id":"UN5R3NYUU","team_id":"TN69AJ2SU","name":"morganlschuler","deleted":false,"color":"e0a729","real_name":"Morgan + Schuler","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Morgan + Schuler","real_name_normalized":"Morgan Schuler","display_name":"Morgan Schuler","display_name_normalized":"Morgan + Schuler","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc6d02aa49cf","image_24":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c6d02aa49cf9d47142e8cfcb7e897b98.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071410},{"id":"UN69C37BJ","team_id":"TN69AJ2SU","name":"tiffanycee123","deleted":false,"color":"4bbe2e","real_name":"Tiffany + Chio","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Tiffany + Chio","real_name_normalized":"Tiffany Chio","display_name":"Tiffany Chio","display_name_normalized":"Tiffany + Chio","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge49485fcc1e","image_24":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e49485fcc1e6f86f199952b8108015e0.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0015-512.png","status_text_canonical":"","team":"TN69AJ2SU"},"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":1568071504}],"cache_ts":1568499687,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 22:21:27 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=SLACK_API_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: + - '736' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 22:21:27 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 13607df5-cea2-4641-b27f-dce8a9464bbc + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-vh1f + X-Cache: + - Miss from cloudfront + Via: + - 1.1 331202b5b8aab67acbf389883133f257.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - Ch_cy8vcG0kshBpfAikr2rGAW6VAd5GcqkA_CzlM0xOOCecejTWoiQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUR2JTNX","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN5R273J8","last_set":1568071183},"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":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7},{"id":"CN6A88SJZ","name":"turkey","is_channel":true,"is_group":false,"is_im":false,"created":1568073346,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"turkey","is_shared":false,"parent_conversation":null,"creator":"UMUR43REX","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":false,"is_private":false,"is_mpim":false,"topic":{"value":"To + collect images of turkeys and information about turkeys","creator":"UN5R273J8","last_set":1568232705},"purpose":{"value":"to + collect images of turkeys and information about turkeys","creator":"UMUR43REX","last_set":1568073347},"previous_names":[],"num_members":3},{"id":"CN85BSBQF","name":"slack-cli","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"slack-cli","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232665},"purpose":{"value":"Posts + about the Slack CLI project","creator":"UN5R273J8","last_set":1568232660},"previous_names":[],"num_members":7},{"id":"CN8FME7AS","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1568071183,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UN5R273J8","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TN69AJ2SU"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN5R273J8","last_set":1568071183},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN5R273J8","last_set":1568071183},"previous_names":[],"num_members":7}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 22:21:27 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CMUR2JTNX&text=The%20bots%20are%20pleased.&token=SLACK_API_TOKEN + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '184' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 23:41:53 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - eea5131a-3a11-4ae1-ae71-e9a9a0586c09 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-1m6r + X-Cache: + - Miss from cloudfront + Via: + - 1.1 36fbf419b5fa237613e1567ab33d3698.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19 + X-Amz-Cf-Id: + - 770HxniJfz-0MWPqhC1NugC6ijvB2lJX0wUJFXLthlstAYiPF32Rvg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CMUR2JTNX","ts":"1568504513.000300","message":{"type":"message","subtype":"bot_message","text":"The + bots are pleased.","ts":"1568504513.000300","username":"Leaves - Julia K - + API Project","bot_id":"BN8FYF5UN"}}' + http_version: + recorded_at: Sat, 14 Sep 2019 23:41:53 GMT recorded_with: VCR 5.0.0 diff --git a/test/recipient_test.rb b/test/recipient_test.rb index b2b1d78e..c4e1b74b 100644 --- a/test/recipient_test.rb +++ b/test/recipient_test.rb @@ -20,8 +20,9 @@ describe "details" do it "raises an error if implementation attempted within Recipient class" do VCR.use_cassette("recipient-info") do - expect{ Slack::Recipient.details - }.must_raise Exception + recipient = Slack::Recipient.new(1, "spongebob") + expect{ recipient.details + }.must_raise API_Error end end end @@ -29,8 +30,8 @@ describe "self.list" do it "raises an error if implementation attempted within Recipient class" do VCR.use_cassette("recipient-info") do - expect{ Slack::Recipient.self.list - }.must_raise Exception + expect{ Slack::Recipient.list + }.must_raise API_Error end end end @@ -69,7 +70,7 @@ slack_id = "USLACKBOT" message = "Woe upon your Cylon heart." { "ok": false, "error": "too_many_attachments" } - + expect{ Slack::Recipient.send_message(slack_id, message) }.must_raise Exception end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 6e772b79..21945c82 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -63,21 +63,42 @@ VCR.use_cassette("workspace-info") do workspace = Slack::Workspace.new name_or_id = "nonexistentname" - user = workspace.select(name_or_id) assert_nil user end end end -end - -# describe "show details method" do -# it "returns an instance of user" -# VCR.use_cassette("workspace-info") do -# workspace = Slack::Workspace.new -# #selected = user - -# selected = workspace.show_details -# expect(selected).must_be_kind_of String -# end -# end + + describe "show details" do + it "returns a table for the selected user or channel" do + VCR.use_cassette("workspace-info") do + workspace = Slack::Workspace.new + name_or_id = "random" + @selected = workspace.select(name_or_id) + expect(workspace.show_details).must_be_kind_of TablePrint::Returnable + end + end + + end + + describe "user_message" do + it "returns a message string when a message is sent successfully" do + VCR.use_cassette("workspace-info") do + # instantiate workspace + workspace = Slack::Workspace.new + # pass in channel name + name_or_id = "random" + # use channel name argument to select that channel + @selected = workspace.select(name_or_id) + # provide method variables + message = "The bots are pleased." + slack_id = "CMUR2JTNX" + + expect(workspace.user_message(message, slack_id)).must_equal + String + end + end + + end + +end \ No newline at end of file From 8bcc4469b20860c4b56523f892dfe822a0ae0266 Mon Sep 17 00:00:00 2001 From: Julia A Kingrey Date: Sat, 14 Sep 2019 17:44:30 -0700 Subject: [PATCH 28/29] Removed working comments. --- test/channel_test.rb | 8 -------- test/user_test.rb | 10 +--------- test/workspace_test.rb | 5 ----- 3 files changed, 1 insertion(+), 22 deletions(-) diff --git a/test/channel_test.rb b/test/channel_test.rb index fff9d165..61518751 100644 --- a/test/channel_test.rb +++ b/test/channel_test.rb @@ -21,13 +21,5 @@ end end - # Test on hold check self.list - # it "return an array of Channel Instances" do - # VCR.use_cassette("channel-info") do - # channel = Slack::Channel.list - # expect(channel.first).must_be_kind_of Slack::Channel - # expect(channel.last).must_be_kind_of Slack::Channel - # end - # end end end diff --git a/test/user_test.rb b/test/user_test.rb index fe7f02f6..5f39f595 100644 --- a/test/user_test.rb +++ b/test/user_test.rb @@ -19,14 +19,6 @@ expect(user.real_name).must_be_kind_of String end end - - # describe "details method" do - # it "return an array" do - # #VCR.use_cassette("user-info") do - # user = Slack::User.new("CS50", "spongebob", "bob smith") - # # user_list = Slack::User.detail - # expect(user.details).must_be_kind_of String - # end - # end end + end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 21945c82..34bc67fd 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -84,16 +84,11 @@ describe "user_message" do it "returns a message string when a message is sent successfully" do VCR.use_cassette("workspace-info") do - # instantiate workspace workspace = Slack::Workspace.new - # pass in channel name name_or_id = "random" - # use channel name argument to select that channel @selected = workspace.select(name_or_id) - # provide method variables message = "The bots are pleased." slack_id = "CMUR2JTNX" - expect(workspace.user_message(message, slack_id)).must_equal String end From 53f06cdab2fe41d3b589902c38f5562f8e04da84 Mon Sep 17 00:00:00 2001 From: Samantha Coll Date: Sat, 14 Sep 2019 18:31:58 -0700 Subject: [PATCH 29/29] refining test for the method user_message --- lib/workspace.rb | 2 +- test/workspace_test.rb | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/workspace.rb b/lib/workspace.rb index df8831a8..d0e8a6e6 100644 --- a/lib/workspace.rb +++ b/lib/workspace.rb @@ -34,7 +34,7 @@ def show_details def user_message(message, slack_id) @selected.send_message(@selected.slack_id, message) - return puts "Success! Message sent to #{@selected.name}." + return "Success! Message sent to #{@selected.name}." end end diff --git a/test/workspace_test.rb b/test/workspace_test.rb index 34bc67fd..78be2492 100644 --- a/test/workspace_test.rb +++ b/test/workspace_test.rb @@ -89,11 +89,8 @@ @selected = workspace.select(name_or_id) message = "The bots are pleased." slack_id = "CMUR2JTNX" - expect(workspace.user_message(message, slack_id)).must_equal - String + expect(workspace.user_message(message, slack_id)).must_be_kind_of String end end - - end - -end \ No newline at end of file + end +end