diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..1ad899db Binary files /dev/null and b/.DS_Store differ 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* diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..2a97e858 --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,34 @@ +#lib/channel.rb +require 'httparty' +require 'awesome_print' +require 'dotenv' +require_relative "recipient" +Dotenv.load + +module Slack + CHANNEL_URI = 'https://slack.com/api' + CHANNEL_KEY = ENV['API_KEY'] + class Channel < Recipient + attr_reader :topic, :member_count + + def initialize(name, id, topic, member_count) + super(name, id) + @topic = topic + @member_count = member_count + end + + def self.channels_list + channels = [] + response = HTTParty.get("#{CHANNEL_URI}/channels.list", query: {token: CHANNEL_KEY}) + response.parsed_response["channels"].each do |channel| + name = channel["name"] + id = channel["id"] + topic = channel["topic"]["value"] + member_count = channel["num_members"] + channel = Slack::Channel.new(name, id, topic, member_count) + channels << channel + end + return channels + end + end +end \ No newline at end of file diff --git a/lib/message.rb b/lib/message.rb new file mode 100644 index 00000000..bea0c59f --- /dev/null +++ b/lib/message.rb @@ -0,0 +1,25 @@ +#lib/message.rb +require "httparty" + +class SlackApiError < StandardError ; end + +module Slack + def self.send_msg(message, channel) + + response = HTTParty.post( + "https://slack.com/api/chat.postMessage", + body: { + token: ENV['API_KEY'], + text: message, + channel: channel + }, + headers: { 'Content-Type' => 'application/x-www-form-urlencoded' } + ) + + unless response.code == 200 && response.parsed_response["ok"] + raise SlackApiError, "Error when posting #{message} to #{channel}, error: #{response.parsed_response["error"]}" + end + + return true + end +end diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..ffc0d213 --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,10 @@ +#lib/recipient.rb +module Slack + class Recipient + attr_reader :name, :id + def initialize(name, id) + @name = name + @id = id + end + end +end \ No newline at end of file diff --git a/lib/slack.rb b/lib/slack.rb index 960cf2f7..41f4fdf3 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,10 +1,66 @@ -#!/usr/bin/env ruby +#lib/slack.rb +require "httparty" +require "awesome_print" +require "colorize" +require "table_print" +require 'dotenv' +require_relative "workspace" +require_relative 'message' +Dotenv.load def main - puts "Welcome to the Ada Slack CLI!" - - # TODO project - + @workspace = Slack::Workspace.new() + while true + puts "Welcome to the Ada Slack CLI!".colorize(:color => :orange, :mode => :bold) + puts "\nPlease Choose from the following options: + \n1. List Users + \n2. List Channels + \n3. Select User + \n4. Select Channel + \n5. Details + \n6. Send Message + \n7. Quit".colorize(:color => :purple, :mode => :bold) + + option = gets.chomp.downcase + + case option + when "list users", "1" + tp @workspace.users, "name", "id", "real_name" + sleep(2) + when "list channels", "2" + tp @workspace.channels, "name", "id", "topic", "member_count" + sleep(2) + when "select user", "3" + puts "Please enter username or Slack ID" + user_selection = gets.chomp + @workspace.select_user(user_selection) + when "select channel", "4" + puts "Please enter channel name or Slack ID" + channel_selection = gets.chomp + @workspace.select_channel(channel_selection) + when "details", "5" + puts @workspace.show_details + sleep(2) + when "send message", "6" + recipient = @workspace.recipient + if recipient.class == Slack::Channel + print "Please enter the message: " + message = gets.chomp + name = recipient.name + Slack.send_msg(message, name) + elsif recipient.class == Slack::User + print "Please enter the message: " + message = gets.chomp + id = recipient.id + Slack.send_msg(message, id) + else + puts "No recipient selected" + sleep(2) + end + when "quit", "7" + exit + end + end puts "Thank you for using the Ada Slack CLI" end diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..4a6b8139 --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,30 @@ +#lib/user.rb +require 'httparty' +require 'awesome_print' +require 'dotenv' +require_relative "recipient" +Dotenv.load + +module Slack + class User < Recipient + attr_reader :real_name + def initialize(name, id, real_name) + super(name, id) + @real_name = real_name + end + + def self.users_list + users = [] + response = HTTParty.get("https://slack.com/api/users.list", query: {token: ENV['API_KEY']}) + response.parsed_response["members"].each do |member| + name = member["name"] + id = member["id"] + real_name = member["real_name"] + user = Slack::User.new(name, id, real_name) + users << user + end + return users + end + + end +end \ No newline at end of file diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..5f3c759f --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,63 @@ +#lib/workspace.rb +require 'httparty' +require 'awesome_print' +require_relative "user" +require_relative "channel" + +module Slack + class Workspace + attr_reader :users, :channels, :recipient + def initialize + @users = User.users_list + @channels = Channel.channels_list + @recipient= nil + end + + def select_user(input) + found = false + @users.each do |user| + if user.name == input.downcase || user.id == input + @recipient = user + found = true + end + end + + if found == false + puts "The provided name/id doesn't match any user" + sleep(0.5) + end + return found + end + + def select_channel(input) + found = false + @channels.each do |channel| + if channel.name == input.downcase || channel.id == input + @recipient = channel + recipient + found = true + break + end + end + if found == false + puts "The provided name/id doesn't match any channel" + sleep(0.5) + end + return found + end + + def show_details + details = "" + if @recipient != nil + if @recipient.class == Slack::User + details = "Name: #{@recipient.name}, Id: #{@recipient.id}, Real name: #{@recipient.real_name}\n\n" + else + details = "Name: #{@recipient.name}, Id: #{@recipient.id}, Topic: #{@recipient.topic}, Member count: #{@recipient.member_count}\n\n" + end + else + details = "No recipient is currently selected." + end + return details + end + end +end \ No newline at end of file diff --git a/test/cassettes/Channel_instantiation.yml b/test/cassettes/Channel_instantiation.yml new file mode 100644 index 00000000..e68a1c97 --- /dev/null +++ b/test/cassettes/Channel_instantiation.yml @@ -0,0 +1,84 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/channels.list?token=API_KEY + 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: + - '696' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 00:15:09 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 9697ad1f-6941-471a-989d-52cd8aaf4210 + 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 + 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-oawk + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c9b161639a9353c2354b895548ea9fca.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - KikW_A8H0T4vHQs3ncrSNAob1OOqIpQWfVJ81SiO6MicTxVAxOu6Uw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUPUL1R9","name":"pupper-pics","is_channel":true,"created":1568067981,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"pupper-pics","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + photoshoot","creator":"UN69RK75K","last_set":1568239058},"purpose":{"value":"To + share darn cute pupper pics!","creator":"UMTERDBPU","last_set":1568081755},"previous_names":[],"num_members":6},{"id":"CMWARHPNF","name":"sploots","is_channel":true,"created":1568159409,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN69RK75K","name_normalized":"sploots","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + butts and toes","creator":"UN69RK75K","last_set":1568239045},"purpose":{"value":"look + at cute doggy butts and toes","creator":"UN69RK75K","last_set":1568159410},"previous_names":[],"num_members":6},{"id":"CN5PU7BBN","name":"general","is_channel":true,"created":1568067980,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UMTERDBPU","last_set":1568067980},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6},{"id":"CN689KKBP","name":"random","is_channel":true,"created":1568067980,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UMTERDBPU","last_set":1568067980},"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":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 00:15:09 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/User_instantiation.yml b/test/cassettes/User_instantiation.yml new file mode 100644 index 00000000..ec0f8536 --- /dev/null +++ b/test/cassettes/User_instantiation.yml @@ -0,0 +1,86 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=API_KEY + 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: + - '1507' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 00:15:10 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 3f2033b2-6144-42b6-aa2b-ac876ae72afb + 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-tucf + X-Cache: + - Miss from cloudfront + Via: + - 1.1 44cd593d82a2d200a94217033c614c6a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - XsFxTYPMc3uvFSs1LvhKJ-buFpeRu_wELJBILa8E5OOzjzaQgpKNOg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN843TM63","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":"TN843TM63"},"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":"UMTERDBPU","team_id":"TN843TM63","name":"kristina.tanya","deleted":false,"color":"9f69e7","real_name":"Kristina + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kristina + M","real_name_normalized":"Kristina M","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3e9b0330d1c","first_name":"Kristina","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568159573},{"id":"UMURAK10T","team_id":"TN843TM63","name":"rvesteinsdottir","deleted":false,"color":"3c989f","real_name":"random_name","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"random_name","real_name_normalized":"random_name","display_name":"Raisah","display_name_normalized":"Raisah","status_text":"","status_emoji":":rainbow:","status_expiration":0,"avatar_hash":"g1166bfab69b","first_name":"random_name","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568411462},{"id":"UMURAL35H","team_id":"TN843TM63","name":"dnsanche","deleted":false,"color":"e96699","real_name":"Daniela + Sanchez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Daniela + Sanchez","real_name_normalized":"Daniela Sanchez","display_name":"Daniela + Sanchez","display_name_normalized":"Daniela Sanchez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gb0d197e7328","image_24":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568072127,"has_2fa":false},{"id":"UN69JKYQ0","team_id":"TN843TM63","name":"cloudylopez","deleted":false,"color":"674b1b","real_name":"Cloudy + Lopez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cloudy + Lopez","real_name_normalized":"Cloudy Lopez","display_name":"Cloudy Lopez","display_name_normalized":"Cloudy + Lopez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g877656756b0","image_24":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568272045},{"id":"UN69RK75K","team_id":"TN843TM63","name":"gyjinn","deleted":false,"color":"4bbe2e","real_name":"Ga-Young","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Ga-Young","real_name_normalized":"Ga-Young","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g816359af264","image_24":"https:\/\/secure.gravatar.com\/avatar\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568130004},{"id":"UN85KTCHM","team_id":"TN843TM63","name":"alicesunhi","deleted":false,"color":"e7392d","real_name":"jack","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"jack","real_name_normalized":"jack","display_name":"taro","display_name_normalized":"taro","status_text":"","status_emoji":":dog:","status_expiration":0,"avatar_hash":"gb68b3fce35e","first_name":"jack","image_24":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568242931}],"cache_ts":1568420110,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 00:15:10 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/channels_list.yml b/test/cassettes/channels_list.yml new file mode 100644 index 00000000..65628a59 --- /dev/null +++ b/test/cassettes/channels_list.yml @@ -0,0 +1,167 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=API_KEY + 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: + - '1508' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:03:40 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 2941ff17-0ebd-433c-a835-cb064315a9ef + 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-gha7 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 61bc723adb3b1884ed759711e84e13a9.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - hhNwtLFzovOvJ7-7A6U3cqNQWRg8qH10NWtvhubnzfojQMy-qBErIA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN843TM63","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":"TN843TM63"},"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":"UMTERDBPU","team_id":"TN843TM63","name":"kristina.tanya","deleted":false,"color":"9f69e7","real_name":"Kristina + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kristina + M","real_name_normalized":"Kristina M","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3e9b0330d1c","first_name":"Kristina","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568159573},{"id":"UMURAK10T","team_id":"TN843TM63","name":"rvesteinsdottir","deleted":false,"color":"3c989f","real_name":"random_name","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"random_name","real_name_normalized":"random_name","display_name":"Raisah","display_name_normalized":"Raisah","status_text":"","status_emoji":":rainbow:","status_expiration":0,"avatar_hash":"g1166bfab69b","first_name":"random_name","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568411462},{"id":"UMURAL35H","team_id":"TN843TM63","name":"dnsanche","deleted":false,"color":"e96699","real_name":"Daniela + Sanchez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Daniela + Sanchez","real_name_normalized":"Daniela Sanchez","display_name":"Daniela + Sanchez","display_name_normalized":"Daniela Sanchez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gb0d197e7328","image_24":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568072127,"has_2fa":false},{"id":"UN69JKYQ0","team_id":"TN843TM63","name":"cloudylopez","deleted":false,"color":"674b1b","real_name":"Cloudy + Lopez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cloudy + Lopez","real_name_normalized":"Cloudy Lopez","display_name":"Cloudy Lopez","display_name_normalized":"Cloudy + Lopez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g877656756b0","image_24":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568272045},{"id":"UN69RK75K","team_id":"TN843TM63","name":"gyjinn","deleted":false,"color":"4bbe2e","real_name":"Ga-Young","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Ga-Young","real_name_normalized":"Ga-Young","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g816359af264","image_24":"https:\/\/secure.gravatar.com\/avatar\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568130004},{"id":"UN85KTCHM","team_id":"TN843TM63","name":"alicesunhi","deleted":false,"color":"e7392d","real_name":"jack","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"jack","real_name_normalized":"jack","display_name":"taro","display_name_normalized":"taro","status_text":"","status_emoji":":dog:","status_expiration":0,"avatar_hash":"gb68b3fce35e","first_name":"jack","image_24":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568242931}],"cache_ts":1568426620,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:03:39 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token=API_KEY + 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: + - '696' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:03:40 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 4923c828-84f0-41c9-b79f-fe927246796b + 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 + 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-tucf + X-Cache: + - Miss from cloudfront + Via: + - 1.1 61bc723adb3b1884ed759711e84e13a9.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - NZNrQG1CFV47NJ3FrKcw7S6Hos6N-vjUjM6lU1YtaYH2aJpe3IBHXA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUPUL1R9","name":"pupper-pics","is_channel":true,"created":1568067981,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"pupper-pics","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + photoshoot","creator":"UN69RK75K","last_set":1568239058},"purpose":{"value":"To + share darn cute pupper pics!","creator":"UMTERDBPU","last_set":1568081755},"previous_names":[],"num_members":6},{"id":"CMWARHPNF","name":"sploots","is_channel":true,"created":1568159409,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN69RK75K","name_normalized":"sploots","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + butts and toes","creator":"UN69RK75K","last_set":1568239045},"purpose":{"value":"look + at cute doggy butts and toes","creator":"UN69RK75K","last_set":1568159410},"previous_names":[],"num_members":6},{"id":"CN5PU7BBN","name":"general","is_channel":true,"created":1568067980,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UMTERDBPU","last_set":1568067980},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6},{"id":"CN689KKBP","name":"random","is_channel":true,"created":1568067980,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UMTERDBPU","last_set":1568067980},"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":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:03:39 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/message.yml b/test/cassettes/message.yml new file mode 100644 index 00000000..fc6d3aae --- /dev/null +++ b/test/cassettes/message.yml @@ -0,0 +1,70 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=API_KEY&text=Hello%21%21&channel=%40 + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 05:52:59 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - '02868867-f9c8-4b4c-b519-a48c5bc1f883' + 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-neww + X-Cache: + - Miss from cloudfront + Via: + - 1.1 44cd593d82a2d200a94217033c614c6a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - GDKcrPsoPWs95fE4xyaCz1qkE68WQSGOAS7vGOQqQbG6KjPH9gq78A== + body: + encoding: UTF-8 + string: '{"ok":false,"error":"channel_not_found"}' + http_version: + recorded_at: Sat, 14 Sep 2019 05:52:58 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/message_channel.yml b/test/cassettes/message_channel.yml new file mode 100644 index 00000000..f027a270 --- /dev/null +++ b/test/cassettes/message_channel.yml @@ -0,0 +1,71 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=API_KEY&text=Goodbye%21&channel=sploots + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 05:00:45 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 98bcbd07-42da-49b0-823d-290fd7c9679c + 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-7zhp + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4c4ed81695980f3c6829b9fd229bd0f8.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19 + X-Amz-Cf-Id: + - c7zq5H0yTz5G4mSQRW1f5QU3eX_vx7Ii3bRKf2T_996oY_p9cJgJLw== + body: + encoding: UTF-8 + string: '{"ok":true,"channel":"CMWARHPNF","ts":"1568437245.000100","message":{"type":"message","subtype":"bot_message","text":"Goodbye!","ts":"1568437245.000100","username":"Leaves + - DaniSanchez - API Project","bot_id":"BMURJKEH1"}}' + http_version: + recorded_at: Sat, 14 Sep 2019 05:00:44 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/message_user.yml b/test/cassettes/message_user.yml new file mode 100644 index 00000000..e277a4e2 --- /dev/null +++ b/test/cassettes/message_user.yml @@ -0,0 +1,71 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=API_KEY&text=Hello%21%21&channel=UMURAL35H + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 04:54:19 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - e71efaa3-5a8b-4972-947d-0dde498d6e26 + 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-x62j + X-Cache: + - Miss from cloudfront + Via: + - 1.1 2e20768704c71ff3ce2e677251d27f3c.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - pJA_vgS-1zlF66ZsSq0MyfEis3ixFTQIijT0Z8Za52THooe5R5NOlw== + body: + encoding: UTF-8 + string: '{"ok":true,"channel":"DN69JLE2C","ts":"1568436859.000400","message":{"type":"message","subtype":"bot_message","text":"Hello!!","ts":"1568436859.000400","username":"Leaves + - DaniSanchez - API Project","bot_id":"BMURJKEH1"}}' + http_version: + recorded_at: Sat, 14 Sep 2019 04:54:18 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/select_users.yml b/test/cassettes/select_users.yml new file mode 100644 index 00000000..b4f04c24 --- /dev/null +++ b/test/cassettes/select_users.yml @@ -0,0 +1,167 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=API_KEY + 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: + - '1508' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:03:41 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - d201dca4-6bca-4455-86a6-75945cd71577 + 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-m9ma + X-Cache: + - Miss from cloudfront + Via: + - 1.1 e36ab1b8726f47aa5adc8e19e66d1bbe.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - B-5fCoMzaKriYx8EjXTpJHlSBImJ2nd7on92ezM0WZFySW7x2O-TgQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN843TM63","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":"TN843TM63"},"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":"UMTERDBPU","team_id":"TN843TM63","name":"kristina.tanya","deleted":false,"color":"9f69e7","real_name":"Kristina + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kristina + M","real_name_normalized":"Kristina M","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3e9b0330d1c","first_name":"Kristina","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568159573},{"id":"UMURAK10T","team_id":"TN843TM63","name":"rvesteinsdottir","deleted":false,"color":"3c989f","real_name":"random_name","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"random_name","real_name_normalized":"random_name","display_name":"Raisah","display_name_normalized":"Raisah","status_text":"","status_emoji":":rainbow:","status_expiration":0,"avatar_hash":"g1166bfab69b","first_name":"random_name","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568411462},{"id":"UMURAL35H","team_id":"TN843TM63","name":"dnsanche","deleted":false,"color":"e96699","real_name":"Daniela + Sanchez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Daniela + Sanchez","real_name_normalized":"Daniela Sanchez","display_name":"Daniela + Sanchez","display_name_normalized":"Daniela Sanchez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gb0d197e7328","image_24":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568072127,"has_2fa":false},{"id":"UN69JKYQ0","team_id":"TN843TM63","name":"cloudylopez","deleted":false,"color":"674b1b","real_name":"Cloudy + Lopez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cloudy + Lopez","real_name_normalized":"Cloudy Lopez","display_name":"Cloudy Lopez","display_name_normalized":"Cloudy + Lopez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g877656756b0","image_24":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568272045},{"id":"UN69RK75K","team_id":"TN843TM63","name":"gyjinn","deleted":false,"color":"4bbe2e","real_name":"Ga-Young","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Ga-Young","real_name_normalized":"Ga-Young","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g816359af264","image_24":"https:\/\/secure.gravatar.com\/avatar\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568130004},{"id":"UN85KTCHM","team_id":"TN843TM63","name":"alicesunhi","deleted":false,"color":"e7392d","real_name":"jack","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"jack","real_name_normalized":"jack","display_name":"taro","display_name_normalized":"taro","status_text":"","status_emoji":":dog:","status_expiration":0,"avatar_hash":"gb68b3fce35e","first_name":"jack","image_24":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568242931}],"cache_ts":1568426621,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:03:41 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token=API_KEY + 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: + - '696' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:03:41 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 8301b4f9-a352-486a-a358-d705953698c8 + 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 + 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-9agp + X-Cache: + - Miss from cloudfront + Via: + - 1.1 d6b180eb367f7de26d67a9f3901b96a6.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - 0i0GmgX__NG9hdt1OOShdvI9CxzD021FHpBZG-hWxDiWPf9ZFskdhQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUPUL1R9","name":"pupper-pics","is_channel":true,"created":1568067981,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"pupper-pics","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + photoshoot","creator":"UN69RK75K","last_set":1568239058},"purpose":{"value":"To + share darn cute pupper pics!","creator":"UMTERDBPU","last_set":1568081755},"previous_names":[],"num_members":6},{"id":"CMWARHPNF","name":"sploots","is_channel":true,"created":1568159409,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN69RK75K","name_normalized":"sploots","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + butts and toes","creator":"UN69RK75K","last_set":1568239045},"purpose":{"value":"look + at cute doggy butts and toes","creator":"UN69RK75K","last_set":1568159410},"previous_names":[],"num_members":6},{"id":"CN5PU7BBN","name":"general","is_channel":true,"created":1568067980,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UMTERDBPU","last_set":1568067980},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6},{"id":"CN689KKBP","name":"random","is_channel":true,"created":1568067980,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UMTERDBPU","last_set":1568067980},"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":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:03:41 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/show_details.yml b/test/cassettes/show_details.yml new file mode 100644 index 00000000..a712bf95 --- /dev/null +++ b/test/cassettes/show_details.yml @@ -0,0 +1,167 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=API_KEY + 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: + - '1507' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:08:01 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 11be461c-7766-4265-8a8b-471b7cc493d5 + 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-hdxt + X-Cache: + - Miss from cloudfront + Via: + - 1.1 aef00f14752da9aa504d392fd46eff94.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - glOfyX6ECLZFjOfiKxvox0ABWZ_1rpQ-wY6bKlI2JD_CM9xc9wkXWw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN843TM63","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":"TN843TM63"},"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":"UMTERDBPU","team_id":"TN843TM63","name":"kristina.tanya","deleted":false,"color":"9f69e7","real_name":"Kristina + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kristina + M","real_name_normalized":"Kristina M","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3e9b0330d1c","first_name":"Kristina","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568159573},{"id":"UMURAK10T","team_id":"TN843TM63","name":"rvesteinsdottir","deleted":false,"color":"3c989f","real_name":"random_name","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"random_name","real_name_normalized":"random_name","display_name":"Raisah","display_name_normalized":"Raisah","status_text":"","status_emoji":":rainbow:","status_expiration":0,"avatar_hash":"g1166bfab69b","first_name":"random_name","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568411462},{"id":"UMURAL35H","team_id":"TN843TM63","name":"dnsanche","deleted":false,"color":"e96699","real_name":"Daniela + Sanchez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Daniela + Sanchez","real_name_normalized":"Daniela Sanchez","display_name":"Daniela + Sanchez","display_name_normalized":"Daniela Sanchez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gb0d197e7328","image_24":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568072127,"has_2fa":false},{"id":"UN69JKYQ0","team_id":"TN843TM63","name":"cloudylopez","deleted":false,"color":"674b1b","real_name":"Cloudy + Lopez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cloudy + Lopez","real_name_normalized":"Cloudy Lopez","display_name":"Cloudy Lopez","display_name_normalized":"Cloudy + Lopez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g877656756b0","image_24":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568272045},{"id":"UN69RK75K","team_id":"TN843TM63","name":"gyjinn","deleted":false,"color":"4bbe2e","real_name":"Ga-Young","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Ga-Young","real_name_normalized":"Ga-Young","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g816359af264","image_24":"https:\/\/secure.gravatar.com\/avatar\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568130004},{"id":"UN85KTCHM","team_id":"TN843TM63","name":"alicesunhi","deleted":false,"color":"e7392d","real_name":"jack","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"jack","real_name_normalized":"jack","display_name":"taro","display_name_normalized":"taro","status_text":"","status_emoji":":dog:","status_expiration":0,"avatar_hash":"gb68b3fce35e","first_name":"jack","image_24":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568242931}],"cache_ts":1568426881,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:08:01 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token=API_KEY + 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: + - '696' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 02:08:01 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - a7a11ac3-61e2-44e9-b899-3d49a43c14cc + 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 + 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-ay2f + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1a53057db389e96b4ef1bfbc925dde1c.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - L_AVnl8PVzkmF_zuZ7WG-8u-WLSOYI_9MQ97P3sMmESArhzxqQ86RA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUPUL1R9","name":"pupper-pics","is_channel":true,"created":1568067981,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"pupper-pics","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + photoshoot","creator":"UN69RK75K","last_set":1568239058},"purpose":{"value":"To + share darn cute pupper pics!","creator":"UMTERDBPU","last_set":1568081755},"previous_names":[],"num_members":6},{"id":"CMWARHPNF","name":"sploots","is_channel":true,"created":1568159409,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN69RK75K","name_normalized":"sploots","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + butts and toes","creator":"UN69RK75K","last_set":1568239045},"purpose":{"value":"look + at cute doggy butts and toes","creator":"UN69RK75K","last_set":1568159410},"previous_names":[],"num_members":6},{"id":"CN5PU7BBN","name":"general","is_channel":true,"created":1568067980,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UMTERDBPU","last_set":1568067980},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6},{"id":"CN689KKBP","name":"random","is_channel":true,"created":1568067980,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UMTERDBPU","last_set":1568067980},"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":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 02:08:01 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/users_list.yml b/test/cassettes/users_list.yml new file mode 100644 index 00000000..7c728651 --- /dev/null +++ b/test/cassettes/users_list.yml @@ -0,0 +1,167 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=API_KEY + 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: + - '1507' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 00:15:09 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - b06ec101-37f6-41e0-8c48-fd157edfc212 + 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-xtep + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1002c05e647d0804e83147cdd205d14a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - r1jsWfrKWkdz9xktes46GVygCp7SHmquvjb20xqrH1B2Vbub2DN5hQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TN843TM63","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":"TN843TM63"},"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":"UMTERDBPU","team_id":"TN843TM63","name":"kristina.tanya","deleted":false,"color":"9f69e7","real_name":"Kristina + M","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Kristina + M","real_name_normalized":"Kristina M","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g3e9b0330d1c","first_name":"Kristina","last_name":"M","image_24":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3e9b0330d1c2e104f1d9dbe0c6d81104.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0021-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568159573},{"id":"UMURAK10T","team_id":"TN843TM63","name":"rvesteinsdottir","deleted":false,"color":"3c989f","real_name":"random_name","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"random_name","real_name_normalized":"random_name","display_name":"Raisah","display_name_normalized":"Raisah","status_text":"","status_emoji":":rainbow:","status_expiration":0,"avatar_hash":"g1166bfab69b","first_name":"random_name","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/1166bfab69bc4d1c79dcb245ee03288a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0026-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568411462},{"id":"UMURAL35H","team_id":"TN843TM63","name":"dnsanche","deleted":false,"color":"e96699","real_name":"Daniela + Sanchez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Daniela + Sanchez","real_name_normalized":"Daniela Sanchez","display_name":"Daniela + Sanchez","display_name_normalized":"Daniela Sanchez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gb0d197e7328","image_24":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b0d197e73289b9054faa0517726ff139.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0006-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568072127,"has_2fa":false},{"id":"UN69JKYQ0","team_id":"TN843TM63","name":"cloudylopez","deleted":false,"color":"674b1b","real_name":"Cloudy + Lopez","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Cloudy + Lopez","real_name_normalized":"Cloudy Lopez","display_name":"Cloudy Lopez","display_name_normalized":"Cloudy + Lopez","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g877656756b0","image_24":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/877656756b0aed370014507bf3552664.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0009-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568272045},{"id":"UN69RK75K","team_id":"TN843TM63","name":"gyjinn","deleted":false,"color":"4bbe2e","real_name":"Ga-Young","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Ga-Young","real_name_normalized":"Ga-Young","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g816359af264","image_24":"https:\/\/secure.gravatar.com\/avatar\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.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\/816359af2646dc0038a37f6704efd389.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0005-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568130004},{"id":"UN85KTCHM","team_id":"TN843TM63","name":"alicesunhi","deleted":false,"color":"e7392d","real_name":"jack","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"jack","real_name_normalized":"jack","display_name":"taro","display_name_normalized":"taro","status_text":"","status_emoji":":dog:","status_expiration":0,"avatar_hash":"gb68b3fce35e","first_name":"jack","image_24":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/b68b3fce35eedec31832996b6e7a6bd3.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0017-512.png","status_text_canonical":"","team":"TN843TM63"},"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":1568242931}],"cache_ts":1568420109,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 00:15:09 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token=API_KEY + 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: + - '696' + Connection: + - keep-alive + Date: + - Sat, 14 Sep 2019 00:15:10 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 1fc224f9-f316-4827-88ef-8b7fb1903202 + 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 + 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-w4yr + X-Cache: + - Miss from cloudfront + Via: + - 1.1 ef6538ee7be7b17c84d06edb0f4c0a1a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - WAccUX33Ggb4b3bTIc_GPiI5t8sJD0mDGyZ2ncm0oPVxMbZnYG6Xqw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMUPUL1R9","name":"pupper-pics","is_channel":true,"created":1568067981,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"pupper-pics","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + photoshoot","creator":"UN69RK75K","last_set":1568239058},"purpose":{"value":"To + share darn cute pupper pics!","creator":"UMTERDBPU","last_set":1568081755},"previous_names":[],"num_members":6},{"id":"CMWARHPNF","name":"sploots","is_channel":true,"created":1568159409,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN69RK75K","name_normalized":"sploots","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"doggy + butts and toes","creator":"UN69RK75K","last_set":1568239045},"purpose":{"value":"look + at cute doggy butts and toes","creator":"UN69RK75K","last_set":1568159410},"previous_names":[],"num_members":6},{"id":"CN5PU7BBN","name":"general","is_channel":true,"created":1568067980,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UMTERDBPU","last_set":1568067980},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6},{"id":"CN689KKBP","name":"random","is_channel":true,"created":1568067980,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UMTERDBPU","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UMTERDBPU","UMURAK10T","UMURAL35H","UN69JKYQ0","UN69RK75K","UN85KTCHM"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UMTERDBPU","last_set":1568067980},"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":"UMTERDBPU","last_set":1568067980},"previous_names":[],"num_members":6}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Sat, 14 Sep 2019 00:15:09 GMT +recorded_with: VCR 5.0.0 diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..810acf2d --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1,33 @@ +require_relative 'test_helper.rb' + + +describe "Channel class" do + + describe "Channel instantiation" do + before do + VCR.use_cassette("Channel_instantiation") do + @channels = Slack::Channel.channels_list + end + end + + it "is an instance of Channel" do + expect(@channels.first).must_be_kind_of Slack::Channel + end + + it "returns an array of channels" do + expect(@channels).must_be_instance_of Array + end + + it "will return the first channel" do + expect(@channels.first.name).must_equal "pupper-pics" + expect(@channels.first.id).must_equal "CMUPUL1R9" + expect(@channels.first.topic).must_equal "doggy photoshoot" + expect(@channels.first.member_count).must_equal 6 + end + + + end #end of describe channel instantiation +end #end of class + + + diff --git a/test/message_test.rb b/test/message_test.rb new file mode 100644 index 00000000..8d53eaf1 --- /dev/null +++ b/test/message_test.rb @@ -0,0 +1,23 @@ +require_relative "test_helper" + +describe Slack do + it "sends message to the user" do + VCR.use_cassette("message_user") do + response = Slack.send_msg("Hello!!", "UMURAL35H") + expect(response).must_equal true + end + end + + it "sends message to the channel" do + VCR.use_cassette("message_channel") do + response = Slack.send_msg("Goodbye!", "sploots") + expect(response).must_equal true + end + end + + it "shows error if response code isn't 200 and ok" do + VCR.use_cassette("message") do + expect {response = Slack.send_msg("Hello!!", "@") }.must_raise SlackApiError + end + end #end send message +end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 90aeb408..694d54a0 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,6 +3,7 @@ add_filter 'test/' end +require 'httparty' require 'minitest' require 'minitest/autorun' require 'minitest/reporters' @@ -12,6 +13,23 @@ Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new VCR.configure do |config| - config.cassette_library_dir = "test/cassettes" - config.hook_into :webmock + 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("API_KEY") do + ENV["API_KEY"] + end end + +require_relative "../lib/message.rb" +require_relative "../lib/recipient.rb" +require_relative "../lib/user.rb" +require_relative "../lib/channel.rb" +require_relative "../lib/slack.rb" +require_relative "../lib/workspace.rb" +require 'dotenv' +Dotenv.load \ No newline at end of file diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..bbe3d705 --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1,37 @@ +require_relative 'test_helper.rb' + + +describe "User class" do + + describe "User instantiation" do + before do + # In our tests, to use VCR, we do the following: + # 1. Find every line in the tests that will make a request + # (In this case, it's Slack::User.users_list) + + # 2. We wrap those lines in this syntax + VCR.use_cassette("User_instantiation") do + @users = Slack::User.users_list + end + end + + it "is an instance of User" do + expect(@users.first).must_be_kind_of Slack::User + end + + it "returns an array of users" do + expect(@users).must_be_instance_of Array + end + + it "will return the first user" do + expect(@users.first.name).must_equal "slackbot" + expect(@users.first.id).must_equal "USLACKBOT" + expect(@users.first.real_name).must_equal "Slackbot" + end + + + end #end of describe user instantiation +end #end of class + + + diff --git a/test/workspace_test.rb b/test/workspace_test.rb new file mode 100644 index 00000000..52232bc9 --- /dev/null +++ b/test/workspace_test.rb @@ -0,0 +1,95 @@ +require_relative "test_helper" +# VCR.use_cassette("location_find") do + +describe "Workspace Class" do + + describe "Workspace Instantiation" do + before do + VCR.use_cassette("users_list") do + @workspace = Slack::Workspace.new + end + end + + it "will haver 7 users" do + expect(@workspace.users.count).must_equal 7 + end + + it "knows that each user is an instance of user" do + expect(@workspace.users.first).must_be_instance_of Slack::User + end + + it "will be an instance of channel" do + expect(@workspace.channels.count).must_equal 4 + end + + it "each channel will be an instance of channel" do + expect(@workspace.channels.first).must_be_instance_of Slack::Channel + end + end #end of describe workspace instantiation + + describe "Workspace's Select User" do + before do + VCR.use_cassette("select_users") do + @workspace = Slack::Workspace.new + end + end + + it "will find the selected user in the list" do + this_user = @workspace.select_user("dnsanche") + expect(this_user).must_equal true + this_user = @workspace.select_user("USLACKBOT") + expect(this_user).must_equal true + end + + it "will return false if invalid username/id are entered" do + this_user = @workspace.select_user("GDFG") + expect(this_user).must_equal false + end + end #end of workspace select user block + + describe "Workspace's Select Channel" do + before do + VCR.use_cassette("channels_list") do + @workspace = Slack::Workspace.new + end + end + + it "will find the selected channel in the list if valid channel name/id are entered" do + this_channel = @workspace.select_channel("random") + expect(this_channel).must_equal true + this_channel = @workspace.select_channel("CMUPUL1R9") + expect(this_channel).must_equal true + end + + it "will return false if username/id are invalid" do + this_channel = @workspace.select_channel("GDFG") + expect(this_channel).must_equal false + end + end #end for workspace select channel + + describe "Show details" do + before do + VCR.use_cassette("show_details") do + @workspace = Slack::Workspace.new + end + end + + it "shows details for selected user" do + @workspace.select_user("dnsanche") + details = "Name: dnsanche, Id: UMURAL35H, Real name: Daniela Sanchez\n\n" + expect(@workspace.show_details).must_equal details + end + + it "shows details for selected channel" do + @workspace.select_channel("sploots") + details = "Name: sploots, Id: CMWARHPNF, Topic: doggy butts and toes, Member count: 6\n\n" + expect(@workspace.show_details).must_equal details + end + + it "shows invalid if there is no selected recipient" do + details = "No recipient is currently selected." + expect(@workspace.show_details).must_equal details + end + end #end show details + +end