diff --git a/Untitled 3.rtf b/Untitled 3.rtf new file mode 100644 index 00000000..a1cf93c2 --- /dev/null +++ b/Untitled 3.rtf @@ -0,0 +1,22 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2511 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;} +{\colortbl;\red255\green255\blue255;\red242\green242\blue242;\red0\green0\blue0;} +{\*\expandedcolortbl;;\csgray\c95825;\csgray\c0\c85000;} +\margl1440\margr1440\vieww10800\viewh8400\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf2 \cb3 \CocoaLigature0 1\ +[#, #, #]\ +Choose from the following: \ + 1. list users\ + 2. list channels\ + 3. select user\ + 4. select channel\ + 5. details\ +\ + -1. quit\ + \ +2\ +[#"Company-wide announcements and work-based matters", "creator"=>"UUVTJ2NPK", "last_set"=>1583865667\}, @member_count=1>, #"", "creator"=>"", "last_set"=>0\}, @member_count=1>, #"", "creator"=>"", "last_set"=>0\}, @member_count=1>, #"", "creator"=>"", "last_set"=>0\}, @member_count=1>, #"Non-work banter and water cooler conversation", "creator"=>"UUVTJ2NPK", "last_set"=>1583865667\}, @member_count=1>]\ +Choose from the following: \ +} \ No newline at end of file diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..35862f4d --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,48 @@ + +require_relative 'recipient' +require 'httparty' +require 'dotenv' + + +class ChannelRecipient < Recipient + attr_reader :topic, :member_count + + def initialize(slack_id, name, topic, member_count) + super(slack_id, name) + @topic = topic + @member_count = member_count + end + + def details + pretty_string = "DETAILS: + Slack ID: #{@slack_id} + Name: #{@name} + Topic: #{@topic} + Member Count: #{@member_count} + " + return pretty_string + end + + def self.list_all + query = { + token: ENV["SLACK_TOKEN"] + } + response = HTTParty.get(BASE_URL + "conversations.list", query: query) + + channels = response["channels"] + channels_array = [] + channels.each do |channel| + channels_array << ChannelRecipient.new(channel["id"], channel["name"], channel["topic"], channel["num_members"]) + end + return channels_array + end + + def self.find(id) + self.list_all.each do |channel| + if id == channel.slack_id + return channel + end + end + return "CHANNEL NOT FOUND" + end +end \ No newline at end of file diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..b9b069fb --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,36 @@ +#both user and channel can inherit +require 'httparty' +require 'dotenv' + +BASE_URL = "https://slack.com/api/" + +Dotenv.load + +class Recipient + attr_reader :slack_id, :name + + def initialize(slack_id, name) + @slack_id = slack_id + @name = name + + end + + def details + #override + end + + def self.list_all + #override + end + + def send_message(message) + query = { + token: ENV["SLACK_TOKEN"], + text: message, + channel: @slack_id + } + response = HTTParty.post(BASE_URL + "chat.postMessage", query: query) + return response + end +end + diff --git a/lib/slack.rb b/lib/slack.rb index 8a0b659b..5769240b 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,12 +1,64 @@ #!/usr/bin/env ruby +require_relative 'workspace' +require 'dotenv' +require 'httparty' +require 'table_print' + + +def ask_again + puts "Choose from the following: + 1. list users + 2. list channels + 3. select user + 4. select channel + 5. details + 6. send message + + -1. quit + " + return gets.chomp.to_i +end + def main + workspace = Workspace.new() puts "Welcome to the Ada Slack CLI!" - workspace = Workspace.new - - # TODO project + input = ask_again + recipient = nil + while input != -1 + if input == 1 + tp workspace.list_users, :slack_id, :name, :real_name, :status_text, :status_emoji + + input = ask_again + elsif input == 2 + tp workspace.list_channels, :slack_id, :name, :topic, :member_count + input = ask_again + elsif input == 3 + puts "What is the user's ID?" + recipient = workspace.select_user(gets.chomp) + puts "User: #{recipient}" + input = ask_again + elsif input == 4 + puts "What is the channels's ID?" + recipient = workspace.select_channel(gets.chomp) + puts "Channel: #{recipient}" + input = ask_again + elsif input == 5 + puts workspace.get_details + input = ask_again + elsif input == 6 + puts "Input the message you would like to send:" + workspace.send_message(gets.chomp) + input = ask_again + else + puts "You did not enter a valid number" + input = ask_again + end + end puts "Thank you for using the Ada Slack CLI" end -main if __FILE__ == $PROGRAM_NAME \ No newline at end of file +main if __FILE__ == $PROGRAM_NAME + + diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..793dae95 --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,54 @@ +require_relative 'recipient' +require 'httparty' +require 'dotenv' + + + +class UserRecipient < Recipient + attr_reader :real_name, :status_text, :status_emoji + + def initialize(slack_id, name, real_name, status_text, status_emoji) + super(slack_id, name) + @real_name = real_name + @status_text = status_text + @status_emoji = status_emoji + + end + + def details + pretty_string = "DETAILS: + Slack ID: #{@slack_id} + Name: #{@name} + Real Name: #{@real_name} + Status Text: #{@status_text} + Status Emoji: #{@status_emoji} + " + return pretty_string + + end + + def self.list_all + query = { + token: ENV["SLACK_TOKEN"] + } + response = HTTParty.get(BASE_URL + "users.list", query: query) + users = response["members"] + name_array = [] + users.each do |user| + name_array << UserRecipient.new(user["id"], user["name"],user["profile"]["real_name"], user["profile"]["status_text"], user["profile"]["status_emoji"]) + end + return name_array + end + + def self.find(id) + + self.list_all.each do |user| + if id == user.slack_id + return user + end + end + return "USER NOT FOUND" + end + +end + diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..fe0aad9d --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,54 @@ +require_relative 'user' +require_relative 'channel' +require_relative 'recipient' +require 'table_print' + + + + +class Workspace + + attr_reader :users, :channels, :selected + + def initialize + @users = UserRecipient.list_all + @channels = ChannelRecipient.list_all + @selected = selected + + end + def list_users + return @users + end + + def list_channels + return @channels + end + + def select_user(id) + @selected = UserRecipient.find(id) + return @selected + end + + def select_channel(id) + @selected = ChannelRecipient.find(id) + return @selected + end + + def get_details + if @selected.instance_of?(UserRecipient) || @selected.instance_of?(ChannelRecipient) + return @selected.details + else + return "You have not chosen a user or channel, can't grab details for ya" + end + end + + def send_message(message) + if selected.instance_of? UserRecipient + @selected.send_message(message) + elsif selected.instance_of? ChannelRecipient + @selected.send_message(message) + end + end + +end + diff --git a/test/cassettes/channel_data.yml b/test/cassettes/channel_data.yml new file mode 100644 index 00000000..47c3e3ed --- /dev/null +++ b/test/cassettes/channel_data.yml @@ -0,0 +1,319 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/conversations.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '710' + Connection: + - keep-alive + Date: + - Wed, 11 Mar 2020 20:57:25 GMT + Server: + - Apache + X-Slack-Req-Id: + - ca63e23304cec771068fa0450acd7680 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-hitr + X-Cache: + - Miss from cloudfront + Via: + - 1.1 17d327aff2e081d9a192b3e9f19a7905.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD53-C1 + X-Amz-Cf-Id: + - OiejXjZcYjcenMcGONfzAjp9zHCTkqz8iKsf1P507VY3U6T_tDYNkg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUUG9HF6X","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUVTJ2NPK","last_set":1583865667},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1},{"id":"CUVKG668J","name":"creating-another-channel","is_channel":true,"is_group":false,"is_im":false,"created":1583954031,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"creating-another-channel","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CUYATKU49","name":"one-more","is_channel":true,"is_group":false,"is_im":false,"created":1583954049,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"one-more","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"i + dont know why","creator":"UUVTJ2NPK","last_set":1583954050},"previous_names":[],"num_members":1},{"id":"CV60LSW0Y","name":"quin-api-test","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"quin-api-test","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CV86THB7G","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUVTJ2NPK","last_set":1583865667},"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":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Wed, 11 Mar 2020 20:57:25 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '969' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:16:19 GMT + Server: + - Apache + X-Slack-Req-Id: + - d9d0d35394a73fdf7b3231debd40e25f + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-h1l4 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 ea5ba8d82566173a46fd51b794d38917.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C2 + X-Amz-Cf-Id: + - 5Vpn0WACj55WluEtP5OyTQo4DCSI0eHl52a5nOmfyrz8eQAGMn0o4g== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584206180,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:16:20 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '710' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:16:20 GMT + Server: + - Apache + X-Slack-Req-Id: + - cdf6cd97a2689bae89a38681362a384f + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-eidd + X-Cache: + - Miss from cloudfront + Via: + - 1.1 6aec8f1aa09edf6116ef0f638212a7c6.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C2 + X-Amz-Cf-Id: + - Jt8RdTyt3mccW0g803MP42Zm4hQLGd9Whca4BXa_W3uo3F2gXplWqA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUUG9HF6X","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUVTJ2NPK","last_set":1583865667},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1},{"id":"CUVKG668J","name":"creating-another-channel","is_channel":true,"is_group":false,"is_im":false,"created":1583954031,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"creating-another-channel","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CUYATKU49","name":"one-more","is_channel":true,"is_group":false,"is_im":false,"created":1583954049,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"one-more","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"i + dont know why","creator":"UUVTJ2NPK","last_set":1583954050},"previous_names":[],"num_members":1},{"id":"CV60LSW0Y","name":"quin-api-test","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"quin-api-test","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CV86THB7G","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUVTJ2NPK","last_set":1583865667},"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":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:16:20 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '969' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 18:52:30 GMT + Server: + - Apache + X-Slack-Req-Id: + - 1c59c9c184373c41760c4c15a98d3c69 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-4usq + X-Cache: + - Miss from cloudfront + Via: + - 1.1 58e86c1faaee1b15c90e95d794e240dd.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C3 + X-Amz-Cf-Id: + - eaoS0iOgGVOhWjJqX6MW7eOE2RhaWGWVumPPAwnOnArOHiszxbe2ww== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584211950,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 18:52:30 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/recipient_user.yml b/test/cassettes/recipient_user.yml new file mode 100644 index 00000000..e1dcebc0 --- /dev/null +++ b/test/cassettes/recipient_user.yml @@ -0,0 +1,80 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '969' + Connection: + - keep-alive + Date: + - Thu, 12 Mar 2020 22:24:32 GMT + Server: + - Apache + X-Slack-Req-Id: + - 9645de9ae16b4ee73803369deede62a0 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-wl4e + X-Cache: + - Miss from cloudfront + Via: + - 1.1 12a392bc3a7281f8d5d4591bfadc41fc.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - 3HiSv16kZvYwSvWl097BSRa0IIL7f4GxRtHv3EkfbqUI6gaOGAW8WQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584051872,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Thu, 12 Mar 2020 22:24:32 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/slack_posts.yml b/test/cassettes/slack_posts.yml new file mode 100644 index 00000000..b1377b66 --- /dev/null +++ b/test/cassettes/slack_posts.yml @@ -0,0 +1,156 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '968' + Connection: + - keep-alive + Date: + - Thu, 12 Mar 2020 22:28:56 GMT + Server: + - Apache + X-Slack-Req-Id: + - 1564ee55c4d25d28770abae92ef10aec + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-vefa + X-Cache: + - Miss from cloudfront + Via: + - 1.1 476c2ba6d9f6cd69dbcedbd65688cbc0.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - 2Eu7RPSVUmazJMmaoVWG8vVVdzpEuMVN_yJwbMFsG-1nzEjSGEwE9A== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584052136,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Thu, 12 Mar 2020 22:28:56 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UUVTJ2NPK&text=Hey%20I%20can%20post%20messages!&token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '340' + Connection: + - keep-alive + Date: + - Thu, 12 Mar 2020 22:29:17 GMT + Server: + - Apache + X-Slack-Req-Id: + - f8f0d505b7f422c43330d7628fdd4d7b + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-qel1 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 2bedbeaa49b4a77447d30097858cb81a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - _wQSPk16YDn9P8Q_sRVY_3A1lnNPbM3rKmIz-hLlpC_KPE0Kw5cXig== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5GN34AY","ts":"1584052157.000300","message":{"bot_id":"BVAG7LYMU","type":"message","text":"Hey + I can post messages!","user":"UUVTJ2NPK","ts":"1584052157.000300","team":"TUUG9GLUB","bot_profile":{"id":"BVAG7LYMU","deleted":false,"name":"Time-Quin-API + Project","updated":1583951302,"app_id":"AUUQZERPV","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TUUG9GLUB"}}}' + http_version: null + recorded_at: Thu, 12 Mar 2020 22:29:17 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/slack_posts_channel.yml b/test/cassettes/slack_posts_channel.yml new file mode 100644 index 00000000..7696a061 --- /dev/null +++ b/test/cassettes/slack_posts_channel.yml @@ -0,0 +1,160 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/conversations.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '710' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:33:56 GMT + Server: + - Apache + X-Slack-Req-Id: + - b456fbb23291a4e7ec42dd1d0889b35d + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-lxmb + X-Cache: + - Miss from cloudfront + Via: + - 1.1 9c8cea76bc4ad668228c67b8ca429f82.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD50-C1 + X-Amz-Cf-Id: + - SkGnu1TvWIhNklIBiXKyU_HiN-eaq-hUPGnrXzF8Ee5hNFOuHRrXHw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUUG9HF6X","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUVTJ2NPK","last_set":1583865667},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1},{"id":"CUVKG668J","name":"creating-another-channel","is_channel":true,"is_group":false,"is_im":false,"created":1583954031,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"creating-another-channel","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CUYATKU49","name":"one-more","is_channel":true,"is_group":false,"is_im":false,"created":1583954049,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"one-more","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"i + dont know why","creator":"UUVTJ2NPK","last_set":1583954050},"previous_names":[],"num_members":1},{"id":"CV60LSW0Y","name":"quin-api-test","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"quin-api-test","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CV86THB7G","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUVTJ2NPK","last_set":1583865667},"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":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:33:56 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=CUUG9HF6X&text=Hey%20I%20can%20post%20messages%20to%20some%20channel!&token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '348' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:33:56 GMT + Server: + - Apache + X-Slack-Req-Id: + - beca380d725bf885143486f2fca44625 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - r + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-5fln + X-Cache: + - Miss from cloudfront + Via: + - 1.1 d0c5747a41ab1b19c48bdc3c7feed516.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD50-C1 + X-Amz-Cf-Id: + - e1wqZohzJVByVfnA9cx_5hXB7cBLyKXguRZJgd7qV5Q-g22Vo1dbJg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"CUUG9HF6X","ts":"1584207236.000100","message":{"bot_id":"BVAG7LYMU","type":"message","text":"Hey + I can post messages to some channel!","user":"UUVTJ2NPK","ts":"1584207236.000100","team":"TUUG9GLUB","bot_profile":{"id":"BVAG7LYMU","deleted":false,"name":"Time-Quin-API + Project","updated":1583951302,"app_id":"AUUQZERPV","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TUUG9GLUB"}}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:33:56 GMT +recorded_with: VCR 5.1.0 diff --git a/test/cassettes/user_data.yml b/test/cassettes/user_data.yml new file mode 100644 index 00000000..5e70f6b8 --- /dev/null +++ b/test/cassettes/user_data.yml @@ -0,0 +1,395 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '969' + Connection: + - keep-alive + Date: + - Thu, 12 Mar 2020 21:28:43 GMT + Server: + - Apache + X-Slack-Req-Id: + - b0540eede1b7efc97247fff172eb8b6b + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-0hw9 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1b74ccf4cb51eacf97a0e6d60ae46a3f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C2 + X-Amz-Cf-Id: + - MdxG5ZMXESau2jB0hohQdyDuODBoOP8QztMsztOC6fK5K46Jy0h-Uw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584048523,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Thu, 12 Mar 2020 21:28:43 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '710' + Connection: + - keep-alive + Date: + - Thu, 12 Mar 2020 21:33:55 GMT + Server: + - Apache + X-Slack-Req-Id: + - fac5ca7be78b129300ff597d3c26d215 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-2nvs + X-Cache: + - Miss from cloudfront + Via: + - 1.1 deaaf0548506de20925615eb51a7ea7f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - ew3fWNYK8HsvTgzrqq3Lx8JXM4X092ZRAEFOoHcNOoZoASBLZNtoGQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUUG9HF6X","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUVTJ2NPK","last_set":1583865667},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1},{"id":"CUVKG668J","name":"creating-another-channel","is_channel":true,"is_group":false,"is_im":false,"created":1583954031,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"creating-another-channel","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CUYATKU49","name":"one-more","is_channel":true,"is_group":false,"is_im":false,"created":1583954049,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"one-more","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"i + dont know why","creator":"UUVTJ2NPK","last_set":1583954050},"previous_names":[],"num_members":1},{"id":"CV60LSW0Y","name":"quin-api-test","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"quin-api-test","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CV86THB7G","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUVTJ2NPK","last_set":1583865667},"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":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Thu, 12 Mar 2020 21:33:55 GMT +- request: + method: get + uri: https://slack.com/api/conversations.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '710' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:16:20 GMT + Server: + - Apache + X-Slack-Req-Id: + - 6dd78ad897844f5e8ed6810082d0b243 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - channels:read,groups:read,mpim:read,im:read,read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-32oc + X-Cache: + - Miss from cloudfront + Via: + - 1.1 7da0231bd1c514f0dd4d36905f23fd73.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C2 + X-Amz-Cf-Id: + - lBLzeNGW17ytY4dbMulkYW-MA37Xn4YuSRvICnjGzFFDvprom9AvFQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CUUG9HF6X","name":"general","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":true,"unlinked":0,"name_normalized":"general","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UUVTJ2NPK","last_set":1583865667},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1},{"id":"CUVKG668J","name":"creating-another-channel","is_channel":true,"is_group":false,"is_im":false,"created":1583954031,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"creating-another-channel","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CUYATKU49","name":"one-more","is_channel":true,"is_group":false,"is_im":false,"created":1583954049,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"one-more","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"i + dont know why","creator":"UUVTJ2NPK","last_set":1583954050},"previous_names":[],"num_members":1},{"id":"CV60LSW0Y","name":"quin-api-test","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"quin-api-test","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":1},{"id":"CV86THB7G","name":"random","is_channel":true,"is_group":false,"is_im":false,"created":1583865667,"is_archived":false,"is_general":false,"unlinked":0,"name_normalized":"random","is_shared":false,"parent_conversation":null,"creator":"UUVTJ2NPK","is_ext_shared":false,"is_org_shared":false,"shared_team_ids":["TUUG9GLUB"],"pending_shared":[],"pending_connected_team_ids":[],"is_pending_ext_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UUVTJ2NPK","last_set":1583865667},"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":"UUVTJ2NPK","last_set":1583865667},"previous_names":[],"num_members":1}],"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:16:20 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + 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: + - '969' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 17:16:56 GMT + Server: + - Apache + X-Slack-Req-Id: + - 35c769e9ae5c1feb90ce99de69d17140 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - users:read + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - r + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-9vsr + X-Cache: + - Miss from cloudfront + Via: + - 1.1 e01091b7c39d5f291f684f22eebc396f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C2 + X-Amz-Cf-Id: + - ksOIPZqsXLYoaJNk7XUwhWGHiht28LVLHlbR0-7LmAz2IzAgnxQB-g== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TUUG9GLUB","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":"TUUG9GLUB"},"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":"UUVTJ2NPK","team_id":"TUUG9GLUB","name":"quinruby0","deleted":false,"color":"9f69e7","real_name":"quin","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"quin","real_name_normalized":"quin","display_name":"qq","display_name_normalized":"qq","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge32b4d91cd0","first_name":"quin","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e32b4d91cd01f34e37eb053a21f7bbd5.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"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":1583865709,"has_2fa":false},{"id":"UV5RDS2GL","team_id":"TUUG9GLUB","name":"timequinapi_project","deleted":false,"color":"4bbe2e","real_name":"timequinapi_project","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"timequinapi_project","real_name_normalized":"timequinapi_project","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"g0f0c3111148","api_app_id":"AUUQZERPV","always_active":false,"bot_id":"BV85CLQH5","first_name":"timequinapi_project","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/0f0c311114800083ca0dcd48f278c54f.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0019-512.png","status_text_canonical":"","team":"TUUG9GLUB"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1583876226}],"cache_ts":1584206216,"response_metadata":{"next_cursor":""}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 17:16:56 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage?channel=UUVTJ2NPK&text=Hey%20I%20can%20post%20messages%20from%20test!&token=xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '347' + Connection: + - keep-alive + Date: + - Sat, 14 Mar 2020 18:31:08 GMT + Server: + - Apache + X-Slack-Req-Id: + - 53dc915c11ae0fb907ad47bf919d479c + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write + X-Accepted-Oauth-Scopes: + - chat:write + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Slack-Backend: + - h + X-Content-Type-Options: + - nosniff + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, + x-b3-sampled, x-b3-flags + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-rtkx + X-Cache: + - Miss from cloudfront + Via: + - 1.1 e9a9022a4b078c3e041bab2045f5beef.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - ORD51-C1 + X-Amz-Cf-Id: + - 19kUBfPgRIuDxyOPxOmdmPPcc7mUgry19FgarC6KZ3W0mIjKRInwnQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channel":"DV5GN34AY","ts":"1584210668.000100","message":{"bot_id":"BVAG7LYMU","type":"message","text":"Hey + I can post messages from test!","user":"UUVTJ2NPK","ts":"1584210668.000100","team":"TUUG9GLUB","bot_profile":{"id":"BVAG7LYMU","deleted":false,"name":"Time-Quin-API + Project","updated":1583951302,"app_id":"AUUQZERPV","icons":{"image_36":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_36.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/bot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/plugins\/app\/service_72.png"},"team_id":"TUUG9GLUB"}}}' + http_version: null + recorded_at: Sat, 14 Mar 2020 18:31:08 GMT +recorded_with: VCR 5.1.0 diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..f735592e --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1,44 @@ +require_relative 'test_helper' +require_relative '../lib/channel' + +describe "initialize" do + it "will create a Channel object" do + + channel = ChannelRecipient.new("YYUW", "random", "random stuff is put here", 4) + channel.must_be_instance_of ChannelRecipient + + end +end + +describe "class methods" do + it "can find data" do + VCR.use_cassette("channel_data") do + response = ChannelRecipient.list_all() + expect(response).wont_be_nil + end + end + + it "can find the right channel" do + VCR.use_cassette("channel_data") do + channel = ChannelRecipient.find("CUUG9HF6X") + channel.name.must_equal "general" + end + end + + it "can print out the details" do + VCR.use_cassette("channel_data") do + channel = ChannelRecipient.find("CUUG9HF6X") + string = channel.details + string.must_be_instance_of String + end + end + + it "can send a valid post to channel" do + VCR.use_cassette("slack_posts_channel") do + recipient = ChannelRecipient.find("CUUG9HF6X") + response = recipient.send_message("Hey I can post messages to some channel!") + expect(response["ok"]).must_equal true + end + end +end + diff --git a/test/recipient_test.rb b/test/recipient_test.rb new file mode 100644 index 00000000..38135a13 --- /dev/null +++ b/test/recipient_test.rb @@ -0,0 +1,11 @@ +require_relative 'test_helper' +require_relative '../lib/recipient' + +describe "initialize" do + it "will create a recipient object" do + channel = Recipient.new("YYUW", "random") + channel.must_be_instance_of Recipient + + end +end + diff --git a/test/test_helper.rb b/test/test_helper.rb index 1fcf2bab..a7f08171 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,8 +8,17 @@ require 'minitest/reporters' require 'minitest/skip_dsl' require 'vcr' +require 'dotenv' + + + +Dotenv.load Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new +require_relative '../lib/channel' +require_relative '../lib/user' +require_relative '../lib/slack' + VCR.configure do |config| config.cassette_library_dir = "test/cassettes" @@ -25,5 +34,8 @@ } # Don't leave our token lying around in a cassette file. + config.filter_sensitive_data("xoxb-991668681700-992246719632-sZsRkPHzHzV1rdUQMVXYKdlc") do + ENV["SLACK_TOKEN"] + end end diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..0a39bf0b --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1,44 @@ +require_relative 'test_helper' +require_relative '../lib/user' + +describe "initialize" do + it "will create a User object" do + user = UserRecipient.new("YYUW", "random", "random stuff is put here", 4, "another string") + user.must_be_instance_of UserRecipient + + end +end + +describe "class methods" do + it "can find data" do + VCR.use_cassette("user_data") do + response = UserRecipient.list_all() + expect(response).wont_be_nil + end + end + + it "can find the right user" do + VCR.use_cassette("user_data") do + user = UserRecipient.find("USLACKBOT") + user.status_text.must_equal "" + end + end + + it "can print out the details of USER" do + VCR.use_cassette("user_data") do + user= UserRecipient.find("USLACKBOT") + string = user.details + string.must_be_instance_of String + end + end +end + +describe "send message" do + it "can send a valid message" do + VCR.use_cassette("slack_posts") do + recipient = user = UserRecipient.find("UUVTJ2NPK") + response = recipient.send_message("Hey I can post messages!") + expect(response["ok"]).must_equal true + end + end +end \ No newline at end of file diff --git a/test/workspace_test.rb b/test/workspace_test.rb new file mode 100644 index 00000000..0949541c --- /dev/null +++ b/test/workspace_test.rb @@ -0,0 +1,89 @@ +require_relative 'test_helper' +require_relative '../lib/workspace' +require_relative '../lib/channel' +require_relative '../lib/user' + + +describe "initialize" do + + it "will create a workspace object" do + + VCR.use_cassette("channel_data") do + workspace = Workspace.new + workspace.must_be_instance_of Workspace + end + + VCR.use_cassette("user_data") do + workspace = Workspace.new + workspace.must_be_instance_of Workspace + end + end +end + + +describe "class methods" do + + it "will return users" do + VCR.use_cassette("user_data") do + workspace = Workspace.new + workspace.list_users.must_be_instance_of Array + end + end + + it "will return channels" do + + VCR.use_cassette("channel_data") do + workspace = Workspace.new + workspace.list_channels.must_be_instance_of Array + end + end + + it "will select a user" do + + VCR.use_cassette("user_data") do + workspace = Workspace.new + slack_bot_id = workspace.select_user("USLACKBOT") + slack_bot_id.must_be_instance_of UserRecipient + end + + end + + + it "will select a channel" do + VCR.use_cassette("channel_data") do + workspace = Workspace.new + slack_channel = workspace.select_channel("CUVKG668J") + slack_channel.must_be_instance_of ChannelRecipient + end + end + + it "will get the details of the object" do + VCR.use_cassette("channel_data") do + workspace = Workspace.new + workspace.select_channel("CUVKG668J") + details = workspace.get_details + details.must_be_instance_of String + end + + end + + it "return a string that tells user id is invalid" do + VCR.use_cassette("user_data") do + workspace = Workspace.new + workspace.select_channel("YEET") + details = workspace.get_details + details.must_equal "You have not chosen a user or channel, can't grab details for ya" + + end + + end + + it "can send a valid message" do + VCR.use_cassette("user_data") do + workspace = Workspace.new + quin = workspace.select_user("UUVTJ2NPK") + response = quin.send_message("Hey I can post messages from test!") + expect(response["ok"]).must_equal true + end + end +end