slack-api-wrapper 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/lib/slack-api-wrapper.rb +40 -7
- data/lib/slack/client.rb +6 -4
- data/lib/slack/error.rb +12 -1
- data/lib/slack/oauth2.rb +4 -0
- data/lib/slack/oauth2/flow.rb +28 -18
- data/lib/slack/oauth2/flow_base.rb +5 -2
- data/lib/slack/session.rb +7 -3
- data/lib/slack/version.rb +5 -1
- data/lib/slack/web.rb +6 -1
- data/lib/slack/web/api.rb +15 -1
- data/lib/slack/web/auth.rb +14 -1
- data/lib/slack/web/channels.rb +143 -19
- data/lib/slack/web/chat.rb +63 -10
- data/lib/slack/web/emoji.rb +10 -0
- data/lib/slack/web/files.rb +72 -3
- data/lib/slack/web/groups.rb +151 -21
- data/lib/slack/web/im.rb +54 -5
- data/lib/slack/web/search.rb +60 -3
- data/lib/slack/web/stars.rb +16 -0
- data/lib/slack/web/team.rb +14 -0
- data/lib/slack/web/users.rb +40 -3
- data/slack-api-wrapper.gemspec +1 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dedcbbf1b36c42b4eb57b2ed9ae32426db56e031
|
4
|
+
data.tar.gz: 72720e24918c02d42e573c659ca31e3540207a1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8795bfe54af70f6317508ece2bea2c0d2ea94feeb242f47ed6db8a82a95ac4563e2c3effeebc2d322d520d46455836c93fa4e4538154e773729969ee9596c9ef
|
7
|
+
data.tar.gz: b0de368f122442d43af86c55aab8372f7a73c20244a7b15348dce275623bfa566abd1ce5880a8fd08ad781fed113f625011e804dfa764201057d02c0aa1da3fc
|
data/Gemfile
CHANGED
data/lib/slack-api-wrapper.rb
CHANGED
@@ -8,11 +8,26 @@ require_relative "slack/session"
|
|
8
8
|
require_relative "slack/oauth2"
|
9
9
|
require_relative "slack/client"
|
10
10
|
|
11
|
-
|
11
|
+
# Copyright (c) 2015 Gustavo Bazan
|
12
|
+
# MIT License
|
13
|
+
#
|
14
|
+
# The module that contains everything Slack-related:
|
15
|
+
#
|
16
|
+
# * {Slack::Client} is the class used to interact with the slack end points.
|
17
|
+
# * {Slack::Error} is raised when Slack encounters an error.
|
18
|
+
# * {Slack::Oauth2} handles oauth2 authentication.
|
19
|
+
#
|
20
|
+
module Slack
|
21
|
+
# Slack url
|
12
22
|
WEB_SERVER = 'slack.com'
|
13
|
-
|
23
|
+
# Slack api path
|
24
|
+
API_SERVER = 'slack.com/api'
|
14
25
|
|
26
|
+
# Removes nil params
|
15
27
|
#
|
28
|
+
# @param [Hash] params
|
29
|
+
# API call arguments
|
30
|
+
# @return [Hash]
|
16
31
|
def self.clean_params(params)
|
17
32
|
r = {}
|
18
33
|
params.each do |k,v|
|
@@ -21,15 +36,24 @@ module Slack # :nodoc:
|
|
21
36
|
r
|
22
37
|
end
|
23
38
|
|
39
|
+
# Convert params to query string
|
24
40
|
#
|
41
|
+
# @param [Hash] params
|
42
|
+
# API call arguments
|
43
|
+
# @return [String]
|
25
44
|
def self.make_query_string(params)
|
26
45
|
clean_params(params).collect {|k,v|
|
27
46
|
CGI.escape(k) + "=" + CGI.escape(v)
|
28
47
|
}.join("&")
|
29
48
|
end
|
30
49
|
|
31
|
-
#
|
32
|
-
|
50
|
+
# Handle http requests
|
51
|
+
# @param [URI::HTTPS] uri
|
52
|
+
# API uri
|
53
|
+
# @param [Object] request
|
54
|
+
# request object
|
55
|
+
# @return [Net::HTTPResponse]
|
56
|
+
def self.do_http(uri, request)
|
33
57
|
|
34
58
|
http = Net::HTTP.new(uri.host, uri.port)
|
35
59
|
|
@@ -47,7 +71,11 @@ module Slack # :nodoc:
|
|
47
71
|
|
48
72
|
# Parse response. You probably shouldn't be calling this directly. This takes responses from the server
|
49
73
|
# and parses them. It also checks for errors and raises exceptions with the appropriate messages.
|
50
|
-
|
74
|
+
# @param [Net::HTTPResponse] response
|
75
|
+
# @param [Boolean] raw if return raw data
|
76
|
+
# @raise [SlackError]
|
77
|
+
# @raise [SlackAuthError]
|
78
|
+
def self.parse_response(response, raw=false)
|
51
79
|
if response.kind_of?(Net::HTTPServerError)
|
52
80
|
raise SlackError.new("Slack Server Error: #{response} - #{response.body}", response)
|
53
81
|
elsif response.kind_of?(Net::HTTPUnauthorized)
|
@@ -58,8 +86,10 @@ module Slack # :nodoc:
|
|
58
86
|
rescue
|
59
87
|
raise SlackError.new("Slack Server Error: body=#{response.body}", response)
|
60
88
|
end
|
61
|
-
|
62
|
-
raise SlackError.new(d['
|
89
|
+
if d['error']
|
90
|
+
raise SlackError.new(d['error'], response)
|
91
|
+
else
|
92
|
+
raise SlackError.new(response.body, response)
|
63
93
|
end
|
64
94
|
end
|
65
95
|
|
@@ -75,6 +105,9 @@ module Slack # :nodoc:
|
|
75
105
|
# A string comparison function that is resistant to timing attacks. If you're comparing a
|
76
106
|
# string you got from the outside world with a string that is supposed to be a secret, use
|
77
107
|
# this function to check equality.
|
108
|
+
# @param [String] a
|
109
|
+
# @param [String] b
|
110
|
+
# @return [Boolean] whether the strings are equal
|
78
111
|
def self.safe_string_equals(a, b)
|
79
112
|
if a.length != b.length
|
80
113
|
false
|
data/lib/slack/client.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
require_relative 'session'
|
2
5
|
require_relative 'web'
|
3
6
|
|
4
7
|
module Slack
|
5
8
|
# Use this class to make Slack API calls. You'll need to obtain an OAuth 2 access token
|
6
|
-
# first; you can get one using
|
9
|
+
# first; you can get one using {Slack::OAuth2::Flow}.
|
7
10
|
class Client
|
8
11
|
include Web
|
9
12
|
|
10
|
-
#
|
11
|
-
# * +oauth2_access_token+: Obtained via Slack::OAuth2::Flow.
|
13
|
+
# @param [String] oauth2_access_token user token
|
12
14
|
def initialize(oauth2_access_token)
|
13
15
|
if oauth2_access_token.is_a?(String)
|
14
|
-
@session =
|
16
|
+
@session = Session.new(oauth2_access_token)
|
15
17
|
else
|
16
18
|
raise ArgumentError.new("oauth2_access_token doesn't have a valid type")
|
17
19
|
end
|
data/lib/slack/error.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
|
-
#
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
2
4
|
module Slack
|
5
|
+
# This is the usual error raised on any Slack related Errors
|
6
|
+
# @!attribute http_response
|
7
|
+
# @return [Object] server response
|
8
|
+
# @!attribute error
|
9
|
+
# @return [String] the name of the error
|
3
10
|
class Error < RuntimeError
|
11
|
+
|
4
12
|
attr_accessor :http_response, :error
|
13
|
+
|
5
14
|
def initialize(error, http_response=nil)
|
6
15
|
@error = error
|
7
16
|
@http_response = http_response
|
8
17
|
end
|
9
18
|
|
19
|
+
# String representation
|
20
|
+
# @return [String]
|
10
21
|
def to_s
|
11
22
|
"#{error}"
|
12
23
|
end
|
data/lib/slack/oauth2.rb
CHANGED
data/lib/slack/oauth2/flow.rb
CHANGED
@@ -1,20 +1,27 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
require 'securerandom'
|
2
5
|
|
3
6
|
require_relative 'flow_base'
|
4
7
|
|
5
8
|
module Slack
|
6
|
-
module
|
7
|
-
# The standard OAuth 2 authorization helper.
|
9
|
+
module Oauth2
|
10
|
+
# The standard OAuth 2 authorization helper.
|
8
11
|
class Flow < FlowBase
|
9
12
|
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
+
# @param [String] consumer_key
|
14
|
+
# Your Slack API app's "app key"
|
15
|
+
# @param [String] consumer_secret
|
16
|
+
# Your Slack API app's "app secret"
|
17
|
+
# @param [String] redirect_uri
|
18
|
+
# The URI that the Slack server will redirect the user to after the user
|
13
19
|
# finishes authorizing your app. This URI must be HTTPs-based and pre-registered with
|
14
20
|
# the Slack servers.
|
15
|
-
#
|
16
|
-
# token)
|
17
|
-
#
|
21
|
+
# @param [Hash] session
|
22
|
+
# represents the current web app session (will be used to save the CSRF token)
|
23
|
+
# @param [Object] csrf_token_key
|
24
|
+
# The key to use when storing the CSRF token in the session (for example,
|
18
25
|
# :slack_auth_csrf_token)
|
19
26
|
def initialize(consumer_key, consumer_secret, redirect_uri, scope, team, session, csrf_token_session_key)
|
20
27
|
super(consumer_key, consumer_secret, scope, team)
|
@@ -36,10 +43,11 @@ module Slack
|
|
36
43
|
# you provided to the constructor. This CSRF token will be checked on finish() to prevent
|
37
44
|
# request forgery.
|
38
45
|
#
|
39
|
-
#
|
46
|
+
# @param [String] url_state
|
47
|
+
# Any data you would like to keep in the URL through the authorization
|
40
48
|
# process. This exact value will be returned to you by finish().
|
41
49
|
#
|
42
|
-
# Returns the URL to redirect the user to.
|
50
|
+
# @return Returns the URL to redirect the user to.
|
43
51
|
def start(url_state=nil)
|
44
52
|
unless url_state.nil? or url_state.is_a?(String)
|
45
53
|
raise ArgumentError, "url_state must be a String"
|
@@ -57,21 +65,23 @@ module Slack
|
|
57
65
|
# Call this after the user has visited the authorize URL (see: start()), approved your app,
|
58
66
|
# and was redirected to your redirect URI.
|
59
67
|
#
|
60
|
-
#
|
68
|
+
# @param [Hash] query_params
|
69
|
+
# The query params on the GET request to your redirect URI.
|
61
70
|
#
|
62
|
-
# Returns a tuple of (access_token, scope, url_state). access_token can be used to
|
63
|
-
#
|
64
|
-
#
|
71
|
+
# @return Returns a tuple of (access_token, scope, url_state). access_token can be used to
|
72
|
+
# construct a SlackClient. scpe is the Slack scope the user that jsut approved
|
73
|
+
# your app. url_state is the value you originally passed in to start().
|
65
74
|
#
|
66
|
-
#
|
67
|
-
#
|
75
|
+
# @raise [BadRequestError]
|
76
|
+
# @raise [BadStateError]
|
77
|
+
# @raise [CsrfError]
|
78
|
+
# @raise [NotApprovedError]
|
79
|
+
# @raise [ProviderError]
|
68
80
|
def finish(query_params)
|
69
81
|
csrf_token_from_session = @session[@csrf_token_session_key]
|
70
82
|
|
71
83
|
# Check well-formedness of request.
|
72
84
|
|
73
|
-
# Check well-formedness of request.
|
74
|
-
|
75
85
|
state = query_params['state']
|
76
86
|
if state.nil?
|
77
87
|
raise BadRequestError.new("Missing query parameter 'state'.")
|
@@ -1,9 +1,12 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
require 'uri'
|
2
5
|
|
3
6
|
module Slack
|
4
|
-
module
|
7
|
+
module Oauth2
|
5
8
|
# Base class for the OAuth 2 authorization helpers.
|
6
|
-
class FlowBase
|
9
|
+
class FlowBase
|
7
10
|
def initialize(consumer_key, consumer_secret, scope, team)
|
8
11
|
unless consumer_key.is_a?(String)
|
9
12
|
raise ArgumentError, "consumer_key must be a String, got #{consumer_key.inspect}"
|
data/lib/slack/session.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
module Slack
|
2
5
|
|
3
|
-
class
|
6
|
+
class Session # :nodoc:
|
4
7
|
|
8
|
+
# @param [String] oauth2_access_token user token
|
5
9
|
def initialize(oauth2_access_token)
|
6
10
|
unless oauth2_access_token.is_a?(String)
|
7
11
|
raise "bad type for oauth2_access_token (expecting String)"
|
@@ -11,7 +15,7 @@ module Slack
|
|
11
15
|
|
12
16
|
private
|
13
17
|
|
14
|
-
def build_url(path)
|
18
|
+
def build_url(path) # :nodoc:
|
15
19
|
host = Slack::WEB_SERVER
|
16
20
|
full_path = "/api/#{path}"
|
17
21
|
URI::HTTPS.build({host: host, path: full_path})
|
@@ -38,7 +42,7 @@ module Slack
|
|
38
42
|
do_http(uri, Net::HTTP::Get.new(uri.request_uri))
|
39
43
|
end
|
40
44
|
|
41
|
-
def do_http_with_body(uri, request, body)
|
45
|
+
def do_http_with_body(uri, request, body) # :nodoc:
|
42
46
|
if body != nil
|
43
47
|
if body.is_a?(Hash)
|
44
48
|
request.set_form_data(Slack::clean_params(body))
|
data/lib/slack/version.rb
CHANGED
data/lib/slack/web.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
4
|
+
require_relative 'web/api'
|
1
5
|
require_relative 'web/auth'
|
2
6
|
require_relative 'web/channels'
|
3
7
|
require_relative 'web/chat'
|
@@ -12,7 +16,9 @@ require_relative 'web/users'
|
|
12
16
|
require_relative 'error'
|
13
17
|
|
14
18
|
module Slack
|
19
|
+
# Web endpoints methods
|
15
20
|
module Web
|
21
|
+
include Api
|
16
22
|
include Auth
|
17
23
|
include Channels
|
18
24
|
include Chat
|
@@ -24,6 +30,5 @@ module Slack
|
|
24
30
|
include Search
|
25
31
|
include Team
|
26
32
|
include Users
|
27
|
-
|
28
33
|
end
|
29
34
|
end
|
data/lib/slack/web/api.rb
CHANGED
@@ -1,9 +1,23 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
module Slack
|
2
5
|
module Web
|
3
|
-
|
6
|
+
# Module for the api methods.
|
7
|
+
module Api
|
8
|
+
# Endpoint scope
|
4
9
|
SCOPE = "api"
|
5
10
|
|
6
11
|
# Checks API calling code.
|
12
|
+
#
|
13
|
+
# @param [Hash] params
|
14
|
+
# API call arguments
|
15
|
+
# @option params [Object] 'error'
|
16
|
+
# Error response to return
|
17
|
+
# @option params [Object] 'foo'
|
18
|
+
# example property to return
|
19
|
+
#
|
20
|
+
# @see https://api.slack.com/methods/api.test
|
7
21
|
def api_test(params={})
|
8
22
|
response = @session.do_get "#{SCOPE}.test", params
|
9
23
|
Slack::parse_response(response)
|
data/lib/slack/web/auth.rb
CHANGED
@@ -1,8 +1,21 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
module Slack
|
2
5
|
module Web
|
6
|
+
# Module for the auth methods.
|
3
7
|
module Auth
|
8
|
+
# Endpoint scope
|
9
|
+
SCOPE = "auth"
|
10
|
+
|
11
|
+
# Checks authentication & identity.
|
12
|
+
#
|
13
|
+
# @param [Hash] params
|
14
|
+
# API call arguments
|
15
|
+
#
|
16
|
+
# @see https://api.slack.com/methods/auth.test
|
4
17
|
def auth_test(params={})
|
5
|
-
response = @session.do_get "
|
18
|
+
response = @session.do_get "#{SCOPE}.test", params
|
6
19
|
Slack::parse_response(response)
|
7
20
|
end
|
8
21
|
end
|
data/lib/slack/web/channels.rb
CHANGED
@@ -1,107 +1,231 @@
|
|
1
|
+
# Copyright (c) 2015 Gustavo Bazan
|
2
|
+
# MIT License
|
3
|
+
|
1
4
|
module Slack
|
2
5
|
module Web
|
6
|
+
# Module for the channels methods.
|
7
|
+
# Get info on your team's Slack channels, create or archive channels,
|
8
|
+
# invite users, set the topic and purpose, and mark a channel as read.
|
3
9
|
module Channels
|
10
|
+
# Endpoint scope
|
4
11
|
SCOPE = "channels"
|
5
12
|
|
6
13
|
# Archives a channel.
|
14
|
+
#
|
15
|
+
# @param [Hash] params
|
16
|
+
# API call arguments
|
17
|
+
# @option params [channel] 'channel'
|
18
|
+
# Channel to archive
|
19
|
+
#
|
20
|
+
# @see https://api.slack.com/methods/channels.archive
|
7
21
|
def channels_archive(params = {})
|
8
|
-
|
22
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
9
23
|
response = @session.do_get "#{SCOPE}.archive", params
|
10
24
|
Slack::parse_response(response)
|
11
25
|
end
|
12
26
|
|
13
27
|
# Creates a channel.
|
28
|
+
#
|
29
|
+
# @param [Hash] params
|
30
|
+
# API call arguments
|
31
|
+
# @option params [Object] 'name'
|
32
|
+
# Name of channel to create
|
33
|
+
#
|
34
|
+
# @see https://api.slack.com/methods/channels.create
|
14
35
|
def channels_create(params = {})
|
15
|
-
|
36
|
+
raise ArgumentError.new("Required arguments 'name' missing") if params['name'].nil?
|
16
37
|
response = @session.do_get "#{SCOPE}.create", params
|
17
38
|
Slack::parse_response(response)
|
18
39
|
end
|
19
40
|
|
20
41
|
# Fetches history of messages and events from a channel.
|
42
|
+
#
|
43
|
+
# @param [Hash] params
|
44
|
+
# API call arguments
|
45
|
+
# @option params [channel] 'channel'
|
46
|
+
# Channel to fetch history for.
|
47
|
+
# @option params [timestamp] 'latest'
|
48
|
+
# Latest message timestamp to include in results.
|
49
|
+
# @option params [timestamp] 'oldest'
|
50
|
+
# Oldest message timestamp to include in results.
|
51
|
+
# @option params [Object] 'inclusive'
|
52
|
+
# Include messages with latest or oldest timestamp in results.
|
53
|
+
# @option params [Object] 'count'
|
54
|
+
# Number of messages to return, between 1 and 1000.
|
55
|
+
#
|
56
|
+
# @see https://api.slack.com/methods/channels.history
|
21
57
|
def channels_history(params={})
|
22
|
-
|
58
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
23
59
|
response = @session.do_get "#{SCOPE}.history", params
|
24
60
|
Slack::parse_response(response)
|
25
61
|
end
|
26
62
|
|
27
63
|
# Gets information about a channel.
|
64
|
+
#
|
65
|
+
# @param [Hash] params
|
66
|
+
# API call arguments
|
67
|
+
# @option params [channel] 'channel'
|
68
|
+
# Channel to get info on
|
69
|
+
#
|
70
|
+
# @see https://api.slack.com/methods/channels.info
|
28
71
|
def channels_info(params={})
|
29
|
-
|
72
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
30
73
|
response = @session.do_get "#{SCOPE}.info", params
|
31
74
|
Slack::parse_response(response)
|
32
75
|
end
|
33
76
|
|
34
77
|
# Invites a user to a channel.
|
78
|
+
#
|
79
|
+
# @param [Hash] params
|
80
|
+
# API call arguments
|
81
|
+
# @option params [channel] 'channel'
|
82
|
+
# Channel to invite user to.
|
83
|
+
# @option params [user] 'user'
|
84
|
+
# User to invite to channel.
|
85
|
+
#
|
86
|
+
# @see https://api.slack.com/methods/channels.invite
|
35
87
|
def channels_invite(params={})
|
36
|
-
|
37
|
-
|
88
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
89
|
+
raise ArgumentError.new("Required arguments 'user' missing") if params['user'].nil?
|
38
90
|
response = @session.do_get "#{SCOPE}.invite", params
|
39
91
|
Slack::parse_response(response)
|
40
92
|
end
|
41
93
|
|
42
94
|
# Joins a channel, creating it if needed.
|
95
|
+
#
|
96
|
+
# @param [Hash] params
|
97
|
+
# API call arguments
|
98
|
+
# @option params [Object] 'name'
|
99
|
+
# Name of channel to join
|
100
|
+
#
|
101
|
+
# @see https://api.slack.com/methods/channels.join
|
43
102
|
def channels_join(params={})
|
44
|
-
|
103
|
+
raise ArgumentError.new("Required arguments 'name' missing") if params['name'].nil?
|
45
104
|
response = @session.do_get "#{SCOPE}.join", params
|
46
105
|
Slack::parse_response(response)
|
47
106
|
end
|
48
107
|
|
49
108
|
# Removes a user from a channel.
|
109
|
+
#
|
110
|
+
# @param [Hash] params
|
111
|
+
# API call arguments
|
112
|
+
# @option params [channel] 'channel'
|
113
|
+
# Channel to remove user from.
|
114
|
+
# @option params [user] 'user'
|
115
|
+
# User to remove from channel.
|
116
|
+
#
|
117
|
+
# @see https://api.slack.com/methods/channels.kick
|
50
118
|
def channels_kick(params={})
|
51
|
-
|
52
|
-
|
119
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
120
|
+
raise ArgumentError.new("Required arguments 'user' missing") if params['user'].nil?
|
53
121
|
response = @session.do_get "#{SCOPE}.kick", params
|
54
122
|
Slack::parse_response(response)
|
55
123
|
end
|
56
124
|
|
57
125
|
# Leaves a channel.
|
126
|
+
#
|
127
|
+
# @param [Hash] params
|
128
|
+
# API call arguments
|
129
|
+
# @option params [channel] 'channel'
|
130
|
+
# Channel to leave
|
131
|
+
# @see https://api.slack.com/methods/channels.leave
|
58
132
|
def channels_leave(params={})
|
59
|
-
|
133
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
60
134
|
response = @session.do_get "#{SCOPE}.leave", params
|
61
135
|
Slack::parse_response(response)
|
62
136
|
end
|
63
137
|
|
64
138
|
# Lists all channels in a Slack team.
|
139
|
+
#
|
140
|
+
# @param [Hash] params
|
141
|
+
# API call arguments
|
142
|
+
# @option params [Object] 'exclude_archived'
|
143
|
+
# Don't return archived channels.
|
144
|
+
#
|
145
|
+
# @see https://api.slack.com/methods/channels.list
|
65
146
|
def channels_list(params={})
|
66
147
|
response = @session.do_get "#{SCOPE}.list", params
|
67
148
|
Slack::parse_response(response)
|
68
149
|
end
|
69
150
|
|
70
151
|
# Sets the read cursor in a channel.
|
152
|
+
#
|
153
|
+
# @param [Hash] params
|
154
|
+
# API call arguments
|
155
|
+
# @option params [channel] 'channel'
|
156
|
+
# Channel to set reading cursor in.
|
157
|
+
# @option params [timestamp] 'ts'
|
158
|
+
# Timestamp of the most recently seen message.
|
159
|
+
#
|
160
|
+
# @see https://api.slack.com/methods/channels.mark
|
71
161
|
def channels_mark(params={})
|
72
|
-
|
73
|
-
|
162
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
163
|
+
raise ArgumentError.new("Required arguments 'ts' missing") if params['ts'].nil?
|
74
164
|
response = @session.do_get "#{SCOPE}.mark", params
|
75
165
|
Slack::parse_response(response)
|
76
166
|
end
|
77
167
|
|
78
168
|
# Renames a channel.
|
169
|
+
#
|
170
|
+
# @param [Hash] params
|
171
|
+
# API call arguments
|
172
|
+
# @option params [channel] 'channel'
|
173
|
+
# Channel to rename
|
174
|
+
# @option params [Object] 'name'
|
175
|
+
# New name for channel.
|
176
|
+
#
|
177
|
+
# @see https://api.slack.com/methods/channels.rename
|
79
178
|
def channels_rename(params={})
|
80
|
-
|
81
|
-
|
179
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
180
|
+
raise ArgumentError.new("Required arguments 'name' missing") if params['name'].nil?
|
82
181
|
response = @session.do_get "#{SCOPE}.rename", params
|
83
182
|
Slack::parse_response(response)
|
84
183
|
end
|
85
184
|
|
86
185
|
# Sets the purpose for a channel.
|
186
|
+
#
|
187
|
+
# @param [Hash] params
|
188
|
+
# API call arguments
|
189
|
+
# @option params [channel] 'channel'
|
190
|
+
# Channel to set the purpose of
|
191
|
+
# @option params [Object] 'purpose'
|
192
|
+
# The new purpose
|
193
|
+
#
|
194
|
+
# @see https://api.slack.com/methods/channels.setPurpose
|
87
195
|
def channels_set_purpose(params={})
|
88
|
-
|
89
|
-
|
196
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
197
|
+
raise ArgumentError.new("Required arguments 'purpose' missing") if params['purpose'].nil?
|
90
198
|
response = @session.do_get "#{SCOPE}.setPurpose", params
|
91
199
|
Slack::parse_response(response)
|
92
200
|
end
|
93
201
|
|
94
202
|
# Sets the topic for a channel.
|
203
|
+
#
|
204
|
+
# @param [Hash] params
|
205
|
+
# API call arguments
|
206
|
+
# @option params [channel] 'channel'
|
207
|
+
# Channel to set the topic of
|
208
|
+
# @option params [Object] 'topic'
|
209
|
+
# The new topic
|
210
|
+
# @raise [ArgumentError] if 'channel' or 'topic' are not present
|
211
|
+
# @see https://api.slack.com/methods/channels.setTopic
|
95
212
|
def channels_set_topic(params={})
|
96
|
-
|
97
|
-
|
213
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
214
|
+
raise ArgumentError.new("Required arguments 'topic' missing") if params['topic'].nil?
|
98
215
|
response = @session.do_get "#{SCOPE}.setTopic", params
|
99
216
|
Slack::parse_response(response)
|
100
217
|
end
|
101
218
|
|
102
219
|
# Unarchives a channel.
|
220
|
+
#
|
221
|
+
# @param [Hash] params
|
222
|
+
# API call arguments
|
223
|
+
# @option params [channel] 'channel'
|
224
|
+
# Channel to unarchive
|
225
|
+
# @raise [ArgumentError] if 'channel' is not present
|
226
|
+
# @see https://api.slack.com/methods/channels.unarchive
|
103
227
|
def channels_unarchive(params={})
|
104
|
-
|
228
|
+
raise ArgumentError.new("Required arguments 'channel' missing") if params['channel'].nil?
|
105
229
|
response = @session.do_get "#{SCOPE}.unarchive", params
|
106
230
|
Slack::parse_response(response)
|
107
231
|
end
|