slack-api 0.0.4 → 1.0.0
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/.gitmodules +3 -0
- data/Rakefile +1 -0
- data/lib/generators/schema.json +45 -0
- data/lib/generators/tasks/generate.rb +76 -0
- data/lib/generators/templates/endpoint.rb.erb +13 -0
- data/lib/generators/templates/method.rb.erb +29 -0
- data/lib/slack.rb +5 -5
- data/lib/slack/api.rb +9 -1
- data/lib/slack/client.rb +0 -13
- data/lib/slack/endpoint.rb +33 -0
- data/lib/slack/endpoint/api.rb +22 -0
- data/lib/slack/endpoint/auth.rb +18 -0
- data/lib/slack/endpoint/channels.rb +213 -0
- data/lib/slack/endpoint/chat.rb +75 -0
- data/lib/slack/endpoint/emoji.rb +18 -0
- data/lib/slack/endpoint/files.rb +73 -0
- data/lib/slack/endpoint/groups.rb +226 -0
- data/lib/slack/endpoint/im.rb +79 -0
- data/lib/slack/endpoint/oauth.rb +29 -0
- data/lib/slack/endpoint/presence.rb +21 -0
- data/lib/slack/endpoint/search.rb +65 -0
- data/lib/slack/endpoint/stars.rb +20 -0
- data/lib/slack/endpoint/users.rb +67 -0
- data/lib/slack/realtime/client.rb +40 -0
- data/lib/slack/version.rb +1 -1
- data/slack.gemspec +9 -4
- metadata +92 -2
@@ -0,0 +1,29 @@
|
|
1
|
+
# This file was auto-generated by lib/generators/tasks/generate.rb
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Endpoint
|
5
|
+
module Oauth
|
6
|
+
#
|
7
|
+
# Exchanges a temporary OAuth code for an API token.
|
8
|
+
#
|
9
|
+
# @option options [Object] :client_id
|
10
|
+
# Issued when you created your application.
|
11
|
+
# @option options [Object] :client_secret
|
12
|
+
# Issued when you created your application.
|
13
|
+
# @option options [Object] :code
|
14
|
+
# The `code` param returned via the OAuth callback.
|
15
|
+
# @option options [Object] :redirect_uri
|
16
|
+
# This must match the originally submitted URI (if one was sent).
|
17
|
+
# @see https://api.slack.com/methods/oauth.access
|
18
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/oauth.access.md
|
19
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/oauth.access.json
|
20
|
+
def oauth_access(options={})
|
21
|
+
throw ArgumentError.new("Required arguments :client_id missing") if options[:client_id].nil?
|
22
|
+
throw ArgumentError.new("Required arguments :client_secret missing") if options[:client_secret].nil?
|
23
|
+
throw ArgumentError.new("Required arguments :code missing") if options[:code].nil?
|
24
|
+
post("oauth.access", options)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was auto-generated by lib/generators/tasks/generate.rb
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Endpoint
|
5
|
+
module Presence
|
6
|
+
#
|
7
|
+
# Manually set user presence
|
8
|
+
#
|
9
|
+
# @option options [Object] :presence
|
10
|
+
# Either `active` or `away`
|
11
|
+
# @see https://api.slack.com/methods/presence.set
|
12
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/presence.set.md
|
13
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/presence.set.json
|
14
|
+
def presence_set(options={})
|
15
|
+
throw ArgumentError.new("Required arguments :presence missing") if options[:presence].nil?
|
16
|
+
post("presence.set", options)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# This file was auto-generated by lib/generators/tasks/generate.rb
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Endpoint
|
5
|
+
module Search
|
6
|
+
#
|
7
|
+
# Searches for messages and files matching a query.
|
8
|
+
#
|
9
|
+
# @option options [Object] :query
|
10
|
+
# Search query. May contains booleans, etc.
|
11
|
+
# @option options [Object] :sort
|
12
|
+
# Return matches sorted by either `score` or `timestamp`.
|
13
|
+
# @option options [Object] :sort_dir
|
14
|
+
# Change sort direction to ascending (`asc`) or descending (`desc`).
|
15
|
+
# @option options [Object] :highlight
|
16
|
+
# Pass a value of `1` to enable query highlight markers (see below).
|
17
|
+
# @see https://api.slack.com/methods/search.all
|
18
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.all.md
|
19
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.all.json
|
20
|
+
def search_all(options={})
|
21
|
+
throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
|
22
|
+
post("search.all", options)
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Searches for files matching a query.
|
27
|
+
#
|
28
|
+
# @option options [Object] :query
|
29
|
+
# Search query. May contains booleans, etc.
|
30
|
+
# @option options [Object] :sort
|
31
|
+
# Return matches sorted by either `score` or `timestamp`.
|
32
|
+
# @option options [Object] :sort_dir
|
33
|
+
# Change sort direction to ascending (`asc`) or descending (`desc`).
|
34
|
+
# @option options [Object] :highlight
|
35
|
+
# Pass a value of `1` to enable query highlight markers (see below).
|
36
|
+
# @see https://api.slack.com/methods/search.files
|
37
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.files.md
|
38
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.files.json
|
39
|
+
def search_files(options={})
|
40
|
+
throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
|
41
|
+
post("search.files", options)
|
42
|
+
end
|
43
|
+
|
44
|
+
#
|
45
|
+
# Searches for messages matching a query.
|
46
|
+
#
|
47
|
+
# @option options [Object] :query
|
48
|
+
# Search query. May contains booleans, etc.
|
49
|
+
# @option options [Object] :sort
|
50
|
+
# Return matches sorted by either `score` or `timestamp`.
|
51
|
+
# @option options [Object] :sort_dir
|
52
|
+
# Change sort direction to ascending (`asc`) or descending (`desc`).
|
53
|
+
# @option options [Object] :highlight
|
54
|
+
# Pass a value of `1` to enable query highlight markers (see below).
|
55
|
+
# @see https://api.slack.com/methods/search.messages
|
56
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.messages.md
|
57
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.messages.json
|
58
|
+
def search_messages(options={})
|
59
|
+
throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
|
60
|
+
post("search.messages", options)
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was auto-generated by lib/generators/tasks/generate.rb
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Endpoint
|
5
|
+
module Stars
|
6
|
+
#
|
7
|
+
# Lists stars for a user.
|
8
|
+
#
|
9
|
+
# @option options [user] :user
|
10
|
+
# Show stars by this user. Defaults to the authed user.
|
11
|
+
# @see https://api.slack.com/methods/stars.list
|
12
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/stars.list.md
|
13
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/stars.list.json
|
14
|
+
def stars_list(options={})
|
15
|
+
post("stars.list", options)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# This file was auto-generated by lib/generators/tasks/generate.rb
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Endpoint
|
5
|
+
module Users
|
6
|
+
#
|
7
|
+
# Gets user presence information.
|
8
|
+
#
|
9
|
+
# @option options [user] :user
|
10
|
+
# User to get presence info on. Defaults to the authed user.
|
11
|
+
# @see https://api.slack.com/methods/users.getPresence
|
12
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.getPresence.md
|
13
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.getPresence.json
|
14
|
+
def users_getPresence(options={})
|
15
|
+
throw ArgumentError.new("Required arguments :user missing") if options[:user].nil?
|
16
|
+
post("users.getPresence", options)
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# Gets information about a user.
|
21
|
+
#
|
22
|
+
# @option options [user] :user
|
23
|
+
# User to get info on
|
24
|
+
# @see https://api.slack.com/methods/users.info
|
25
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.info.md
|
26
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.info.json
|
27
|
+
def users_info(options={})
|
28
|
+
throw ArgumentError.new("Required arguments :user missing") if options[:user].nil?
|
29
|
+
post("users.info", options)
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# Lists all users in a Slack team.
|
34
|
+
#
|
35
|
+
# @see https://api.slack.com/methods/users.list
|
36
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.list.md
|
37
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.list.json
|
38
|
+
def users_list(options={})
|
39
|
+
post("users.list", options)
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Marks a user as active.
|
44
|
+
#
|
45
|
+
# @see https://api.slack.com/methods/users.setActive
|
46
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setActive.md
|
47
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setActive.json
|
48
|
+
def users_setActive(options={})
|
49
|
+
post("users.setActive", options)
|
50
|
+
end
|
51
|
+
|
52
|
+
#
|
53
|
+
# Manually sets user presence.
|
54
|
+
#
|
55
|
+
# @option options [Object] :presence
|
56
|
+
# Either `auto` or `away`
|
57
|
+
# @see https://api.slack.com/methods/users.setPresence
|
58
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setPresence.md
|
59
|
+
# @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setPresence.json
|
60
|
+
def users_setPresence(options={})
|
61
|
+
throw ArgumentError.new("Required arguments :presence missing") if options[:presence].nil?
|
62
|
+
post("users.setPresence", options)
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'faye/websocket'
|
2
|
+
require 'eventmachine'
|
3
|
+
|
4
|
+
module Slack
|
5
|
+
module RealTime
|
6
|
+
class Client
|
7
|
+
def initialize(url)
|
8
|
+
@url = url
|
9
|
+
@callbacks ||= {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def on(type, &block)
|
13
|
+
@callbacks[type] ||= []
|
14
|
+
@callbacks[type] << block
|
15
|
+
end
|
16
|
+
|
17
|
+
def start
|
18
|
+
EM.run do
|
19
|
+
ws = Faye::WebSocket::Client.new(@url)
|
20
|
+
|
21
|
+
ws.on :open do |event|
|
22
|
+
end
|
23
|
+
|
24
|
+
ws.on :message do |event|
|
25
|
+
data = JSON.parse(event.data)
|
26
|
+
if !data["type"].nil? && !@callbacks[data["type"].to_sym].nil?
|
27
|
+
@callbacks[data["type"].to_sym].each do |c|
|
28
|
+
c.call data
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
ws.on :close do |event|
|
34
|
+
ws = nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/slack/version.rb
CHANGED
data/slack.gemspec
CHANGED
@@ -20,9 +20,14 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.5"
|
22
22
|
spec.add_development_dependency "rspec", "~> 2.4"
|
23
|
-
spec.add_development_dependency "webmock", "~> 1.6"
|
24
|
-
spec.
|
23
|
+
spec.add_development_dependency "webmock", "~> 1.6"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency 'erubis', '~> 2.7.0'
|
26
|
+
spec.add_development_dependency "json-schema"
|
27
|
+
spec.add_development_dependency "pry"
|
28
|
+
|
29
|
+
spec.add_runtime_dependency "faraday", [">= 0.7", "<= 0.9"]
|
25
30
|
spec.add_runtime_dependency "faraday_middleware", "~> 0.8"
|
26
|
-
spec.add_runtime_dependency "multi_json", ">= 1.0.3", "~> 1.0"
|
31
|
+
spec.add_runtime_dependency "multi_json", ">= 1.0.3", "~> 1.0"
|
32
|
+
spec.add_runtime_dependency "faye-websocket", "~> 0.9.2"
|
27
33
|
end
|
28
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aki017
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,62 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.6'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: erubis
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.7.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.7.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: json-schema
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
55
111
|
- !ruby/object:Gem::Dependency
|
56
112
|
name: faraday
|
57
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +162,20 @@ dependencies:
|
|
106
162
|
- - "~>"
|
107
163
|
- !ruby/object:Gem::Version
|
108
164
|
version: '1.0'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: faye-websocket
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: 0.9.2
|
172
|
+
type: :runtime
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 0.9.2
|
109
179
|
description: A Ruby wrapper for the Slack API
|
110
180
|
email:
|
111
181
|
- aki@aki017.info
|
@@ -114,18 +184,38 @@ extensions: []
|
|
114
184
|
extra_rdoc_files: []
|
115
185
|
files:
|
116
186
|
- ".gitignore"
|
187
|
+
- ".gitmodules"
|
117
188
|
- ".rspec"
|
118
189
|
- Gemfile
|
119
190
|
- LICENSE.txt
|
120
191
|
- README.md
|
121
192
|
- Rakefile
|
122
193
|
- lib/faraday/raise_http_exception.rb
|
194
|
+
- lib/generators/schema.json
|
195
|
+
- lib/generators/tasks/generate.rb
|
196
|
+
- lib/generators/templates/endpoint.rb.erb
|
197
|
+
- lib/generators/templates/method.rb.erb
|
123
198
|
- lib/slack.rb
|
124
199
|
- lib/slack/api.rb
|
125
200
|
- lib/slack/client.rb
|
126
201
|
- lib/slack/configuration.rb
|
127
202
|
- lib/slack/connection.rb
|
203
|
+
- lib/slack/endpoint.rb
|
204
|
+
- lib/slack/endpoint/api.rb
|
205
|
+
- lib/slack/endpoint/auth.rb
|
206
|
+
- lib/slack/endpoint/channels.rb
|
207
|
+
- lib/slack/endpoint/chat.rb
|
208
|
+
- lib/slack/endpoint/emoji.rb
|
209
|
+
- lib/slack/endpoint/files.rb
|
210
|
+
- lib/slack/endpoint/groups.rb
|
211
|
+
- lib/slack/endpoint/im.rb
|
212
|
+
- lib/slack/endpoint/oauth.rb
|
213
|
+
- lib/slack/endpoint/presence.rb
|
214
|
+
- lib/slack/endpoint/search.rb
|
215
|
+
- lib/slack/endpoint/stars.rb
|
216
|
+
- lib/slack/endpoint/users.rb
|
128
217
|
- lib/slack/error.rb
|
218
|
+
- lib/slack/realtime/client.rb
|
129
219
|
- lib/slack/request.rb
|
130
220
|
- lib/slack/version.rb
|
131
221
|
- slack.gemspec
|