slack-ruby-client 0.4.0 → 0.5.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/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +23 -6
- data/.travis.yml +3 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -0
- data/README.md +89 -1
- data/RELEASING.md +3 -1
- data/UPGRADING.md +26 -0
- data/bin/commands.rb +20 -0
- data/bin/commands/api.rb +14 -0
- data/bin/commands/auth.rb +12 -0
- data/bin/commands/channels.rb +140 -0
- data/bin/commands/chat.rb +47 -0
- data/bin/commands/emoji.rb +12 -0
- data/bin/commands/files.rb +61 -0
- data/bin/commands/groups.rb +158 -0
- data/bin/commands/im.rb +53 -0
- data/bin/commands/mpim.rb +53 -0
- data/bin/commands/oauth.rb +16 -0
- data/bin/commands/pins.rb +37 -0
- data/bin/commands/reactions.rb +53 -0
- data/bin/commands/rtm.rb +15 -0
- data/bin/commands/search.rb +40 -0
- data/bin/commands/stars.rb +37 -0
- data/bin/commands/team.rb +32 -0
- data/bin/commands/usergroups.rb +73 -0
- data/bin/commands/users.rb +48 -0
- data/bin/slack +50 -0
- data/examples/hi_real_time/Gemfile +2 -0
- data/examples/hi_real_time_and_web/Gemfile +2 -0
- data/examples/hi_real_time_async/Gemfile +5 -0
- data/examples/hi_real_time_async/hi.rb +29 -0
- data/lib/slack-ruby-client.rb +2 -2
- data/lib/slack/real_time/client.rb +72 -30
- data/lib/slack/real_time/concurrency.rb +8 -0
- data/lib/slack/real_time/concurrency/celluloid.rb +92 -0
- data/lib/slack/real_time/concurrency/eventmachine.rb +39 -0
- data/lib/slack/real_time/config.rb +23 -1
- data/lib/slack/real_time/socket.rb +50 -12
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints.rb +2 -0
- data/lib/slack/web/api/endpoints/groups.rb +1 -1
- data/lib/slack/web/api/endpoints/team.rb +1 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +113 -0
- data/lib/slack/web/api/error.rb +6 -0
- data/lib/slack/web/api/schema/group.json +14 -0
- data/lib/slack/web/api/tasks/generate.rake +19 -3
- data/lib/slack/web/api/templates/command.erb +34 -0
- data/lib/slack/web/api/templates/commands.erb +5 -0
- data/lib/slack/web/config.rb +2 -0
- data/lib/slack/web/faraday/connection.rb +3 -2
- data/lib/slack/web/faraday/response/raise_error.rb +2 -1
- data/slack-ruby-client.gemspec +4 -2
- data/spec/fixtures/slack/web/429_error.yml +83 -0
- data/spec/fixtures/slack/web/rtm_start.yml +1 -1
- data/spec/fixtures/slack/web/users_list.yml +72 -0
- data/spec/integration/integration_spec.rb +88 -0
- data/spec/slack/real_time/client_spec.rb +8 -5
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +58 -0
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +49 -0
- data/spec/slack/slack_spec.rb +52 -0
- data/spec/slack/web/api/endpoints/auth_spec.rb +6 -1
- data/spec/slack/web/api/endpoints/users_spec.rb +13 -0
- data/spec/slack/web/api/error_spec.rb +14 -0
- data/spec/slack/web/client_spec.rb +16 -0
- data/spec/support/real_time/concurrency/mock.rb +31 -0
- data/spec/support/real_time/connected_client.rb +5 -2
- metadata +55 -8
- data/spec/slack/real_time/socket_spec.rb +0 -46
@@ -0,0 +1,47 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Post chat messages to Slack.'
|
4
|
+
command 'chat' do |g|
|
5
|
+
g.desc 'This method deletes a message from a channel.'
|
6
|
+
g.long_desc %( This method deletes a message from a channel. )
|
7
|
+
g.command 'delete' do |c|
|
8
|
+
c.flag 'ts', desc: 'Timestamp of the message to be deleted.'
|
9
|
+
c.flag 'channel', desc: 'Channel containing the message to be deleted.'
|
10
|
+
c.action do |_global_options, options, _args|
|
11
|
+
puts JSON.dump($client.chat_delete(options))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
g.desc 'This method posts a message to a public channel, private group, or IM channel.'
|
16
|
+
g.long_desc %( This method posts a message to a public channel, private group, or IM channel. )
|
17
|
+
g.command 'postMessage' do |c|
|
18
|
+
c.flag 'channel', desc: 'Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See below for more details.'
|
19
|
+
c.flag 'text', desc: 'Text of the message to send. See below for an explanation of formatting.'
|
20
|
+
c.flag 'username', desc: 'Name of bot.'
|
21
|
+
c.flag 'as_user', desc: 'Pass true to post the message as the authed user, instead of as a bot.'
|
22
|
+
c.flag 'parse', desc: 'Change how messages are treated. See below.'
|
23
|
+
c.flag 'link_names', desc: 'Find and link channel names and usernames.'
|
24
|
+
c.flag 'attachments', desc: 'Structured message attachments.'
|
25
|
+
c.flag 'unfurl_links', desc: 'Pass true to enable unfurling of primarily text-based content.'
|
26
|
+
c.flag 'unfurl_media', desc: 'Pass false to disable unfurling of media content.'
|
27
|
+
c.flag 'icon_url', desc: 'URL to an image to use as the icon for this message.'
|
28
|
+
c.flag 'icon_emoji', desc: 'emoji to use as the icon for this message. Overrides icon_url.'
|
29
|
+
c.action do |_global_options, options, _args|
|
30
|
+
puts JSON.dump($client.chat_postMessage(options))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
g.desc 'This method updates a message in a channel.'
|
35
|
+
g.long_desc %( This method updates a message in a channel. )
|
36
|
+
g.command 'update' do |c|
|
37
|
+
c.flag 'ts', desc: 'Timestamp of the message to be updated.'
|
38
|
+
c.flag 'channel', desc: 'Channel containing the message to be updated.'
|
39
|
+
c.flag 'text', desc: 'New text for the message, using the default formatting rules.'
|
40
|
+
c.flag 'attachments', desc: 'Structured message attachments.'
|
41
|
+
c.flag 'parse', desc: 'Change how messages are treated. See below.'
|
42
|
+
c.flag 'link_names', desc: 'Find and link channel names and usernames.'
|
43
|
+
c.action do |_global_options, options, _args|
|
44
|
+
puts JSON.dump($client.chat_update(options))
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Emoji methods.'
|
4
|
+
command 'emoji' do |g|
|
5
|
+
g.desc 'This method lists the custom emoji for a team.'
|
6
|
+
g.long_desc %( This method lists the custom emoji for a team. )
|
7
|
+
g.command 'list' do |c|
|
8
|
+
c.action do |_global_options, options, _args|
|
9
|
+
puts JSON.dump($client.emoji_list(options))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Get info on files uploaded to Slack, upload new files to Slack.'
|
4
|
+
command 'files' do |g|
|
5
|
+
g.desc 'This method deletes a file from your team.'
|
6
|
+
g.long_desc %( This method deletes a file from your team. )
|
7
|
+
g.command 'delete' do |c|
|
8
|
+
c.flag 'file', desc: 'ID of file to delete.'
|
9
|
+
c.action do |_global_options, options, _args|
|
10
|
+
puts JSON.dump($client.files_delete(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
g.desc 'This method returns information about a file in your team.'
|
15
|
+
g.long_desc %( This method returns information about a file in your team. )
|
16
|
+
g.command 'info' do |c|
|
17
|
+
c.flag 'file', desc: 'File to fetch info for.'
|
18
|
+
c.action do |_global_options, options, _args|
|
19
|
+
puts JSON.dump($client.files_info(options))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
g.desc 'This method returns a list of files within the team. It can be filtered and sliced in various ways.'
|
24
|
+
g.long_desc %( This method returns a list of files within the team. It can be filtered and sliced in various ways. )
|
25
|
+
g.command 'list' do |c|
|
26
|
+
c.flag 'user', desc: 'Filter files created by a single user.'
|
27
|
+
c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
|
28
|
+
c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
|
29
|
+
c.flag 'types', desc: 'Filter files by type:
|
30
|
+
|
31
|
+
all - All files
|
32
|
+
posts - Posts
|
33
|
+
snippets - Snippets
|
34
|
+
images - Image files
|
35
|
+
gdocs - Google docs
|
36
|
+
zips - Zip files
|
37
|
+
pdfs - PDF files
|
38
|
+
|
39
|
+
|
40
|
+
You can pass multiple values in the types argument, like types=posts,snippets.The default value is all, which does not filter the list.
|
41
|
+
.'
|
42
|
+
c.action do |_global_options, options, _args|
|
43
|
+
puts JSON.dump($client.files_list(options))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
g.desc 'This method allows you to create or upload an existing file.'
|
48
|
+
g.long_desc %( This method allows you to create or upload an existing file. )
|
49
|
+
g.command 'upload' do |c|
|
50
|
+
c.flag 'file', desc: 'File contents via multipart/form-data.'
|
51
|
+
c.flag 'content', desc: 'File contents via a POST var.'
|
52
|
+
c.flag 'filetype', desc: 'Slack-internal file type identifier.'
|
53
|
+
c.flag 'filename', desc: 'Filename of file.'
|
54
|
+
c.flag 'title', desc: 'Title of file.'
|
55
|
+
c.flag 'initial_comment', desc: 'Initial comment to add to file.'
|
56
|
+
c.flag 'channels', desc: 'Comma separated list of channels to share the file into.'
|
57
|
+
c.action do |_global_options, options, _args|
|
58
|
+
puts JSON.dump($client.files_upload(options))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc "Get info on your team's private groups."
|
4
|
+
command 'groups' do |g|
|
5
|
+
g.desc 'This method archives a private group.'
|
6
|
+
g.long_desc %( This method archives a private group. )
|
7
|
+
g.command 'archive' do |c|
|
8
|
+
c.flag 'channel', desc: 'Private group to archive.'
|
9
|
+
c.action do |_global_options, options, _args|
|
10
|
+
puts JSON.dump($client.groups_archive(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
g.desc 'This method closes a private group.'
|
15
|
+
g.long_desc %( This method closes a private group. )
|
16
|
+
g.command 'close' do |c|
|
17
|
+
c.flag 'channel', desc: 'Group to close.'
|
18
|
+
c.action do |_global_options, options, _args|
|
19
|
+
puts JSON.dump($client.groups_close(options))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
g.desc 'This method creates a private group.'
|
24
|
+
g.long_desc %( This method creates a private group. )
|
25
|
+
g.command 'create' do |c|
|
26
|
+
c.flag 'name', desc: 'Name of group to create.'
|
27
|
+
c.action do |_global_options, options, _args|
|
28
|
+
puts JSON.dump($client.groups_create(options))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
g.desc 'This method takes an existing private group and performs the following steps:'
|
33
|
+
g.long_desc %( This method takes an existing private group and performs the following steps: )
|
34
|
+
g.command 'createChild' do |c|
|
35
|
+
c.flag 'channel', desc: 'Group to clone and archive.'
|
36
|
+
c.action do |_global_options, options, _args|
|
37
|
+
puts JSON.dump($client.groups_createChild(options))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
g.desc 'This method returns a portion of messages/events from the specified private group.'
|
42
|
+
g.long_desc %( This method returns a portion of messages/events from the specified private group. To read the entire history for a group, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
|
43
|
+
g.command 'history' do |c|
|
44
|
+
c.flag 'channel', desc: 'Group to fetch history for.'
|
45
|
+
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
46
|
+
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
47
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
|
48
|
+
c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
|
49
|
+
c.action do |_global_options, options, _args|
|
50
|
+
puts JSON.dump($client.groups_history(options))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
g.desc 'This method returns information about a private group.'
|
55
|
+
g.long_desc %( This method returns information about a private group. )
|
56
|
+
g.command 'info' do |c|
|
57
|
+
c.flag 'channel', desc: 'Group to get info on.'
|
58
|
+
c.action do |_global_options, options, _args|
|
59
|
+
puts JSON.dump($client.groups_info(options))
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
g.desc 'This method is used to invite a user to a private group. The calling user must be a member of the group.'
|
64
|
+
g.long_desc %( This method is used to invite a user to a private group. The calling user must be a member of the group. )
|
65
|
+
g.command 'invite' do |c|
|
66
|
+
c.flag 'channel', desc: 'Private group to invite user to.'
|
67
|
+
c.flag 'user', desc: 'User to invite.'
|
68
|
+
c.action do |_global_options, options, _args|
|
69
|
+
puts JSON.dump($client.groups_invite(options))
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
g.desc 'This method allows a user to remove another member from a private group.'
|
74
|
+
g.long_desc %( This method allows a user to remove another member from a private group. )
|
75
|
+
g.command 'kick' do |c|
|
76
|
+
c.flag 'channel', desc: 'Group to remove user from.'
|
77
|
+
c.flag 'user', desc: 'User to remove from group.'
|
78
|
+
c.action do |_global_options, options, _args|
|
79
|
+
puts JSON.dump($client.groups_kick(options))
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
g.desc 'This method is used to leave a private group.'
|
84
|
+
g.long_desc %( This method is used to leave a private group. )
|
85
|
+
g.command 'leave' do |c|
|
86
|
+
c.flag 'channel', desc: 'Group to leave.'
|
87
|
+
c.action do |_global_options, options, _args|
|
88
|
+
puts JSON.dump($client.groups_leave(options))
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
g.desc 'This method returns a list of groups in the team that the caller is in and archived groups that the caller was in.'
|
93
|
+
g.long_desc %( This method returns a list of groups in the team that the caller is in and archived groups that the caller was in. The list of (non-deactivated) members in each group is also returned. )
|
94
|
+
g.command 'list' do |c|
|
95
|
+
c.flag 'exclude_archived', desc: "Don't return archived groups."
|
96
|
+
c.action do |_global_options, options, _args|
|
97
|
+
puts JSON.dump($client.groups_list(options))
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
g.desc 'This method moves the read cursor in a private group.'
|
102
|
+
g.long_desc %( This method moves the read cursor in a private group. )
|
103
|
+
g.command 'mark' do |c|
|
104
|
+
c.flag 'channel', desc: 'Group to set reading cursor in.'
|
105
|
+
c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
|
106
|
+
c.action do |_global_options, options, _args|
|
107
|
+
puts JSON.dump($client.groups_mark(options))
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
g.desc 'This method opens a private group.'
|
112
|
+
g.long_desc %( This method opens a private group. )
|
113
|
+
g.command 'open' do |c|
|
114
|
+
c.flag 'channel', desc: 'Group to open.'
|
115
|
+
c.action do |_global_options, options, _args|
|
116
|
+
puts JSON.dump($client.groups_open(options))
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
g.desc 'This method renames a private group.'
|
121
|
+
g.long_desc %( This method renames a private group. )
|
122
|
+
g.command 'rename' do |c|
|
123
|
+
c.flag 'channel', desc: 'Group to rename.'
|
124
|
+
c.flag 'name', desc: 'New name for group.'
|
125
|
+
c.action do |_global_options, options, _args|
|
126
|
+
puts JSON.dump($client.groups_rename(options))
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
g.desc 'This method is used to change the purpose of a private group. The calling user must be a member of the private group.'
|
131
|
+
g.long_desc %( This method is used to change the purpose of a private group. The calling user must be a member of the private group. )
|
132
|
+
g.command 'setPurpose' do |c|
|
133
|
+
c.flag 'channel', desc: 'Private group to set the purpose of.'
|
134
|
+
c.flag 'purpose', desc: 'The new purpose.'
|
135
|
+
c.action do |_global_options, options, _args|
|
136
|
+
puts JSON.dump($client.groups_setPurpose(options))
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
g.desc 'This method is used to change the topic of a private group. The calling user must be a member of the private group.'
|
141
|
+
g.long_desc %( This method is used to change the topic of a private group. The calling user must be a member of the private group. )
|
142
|
+
g.command 'setTopic' do |c|
|
143
|
+
c.flag 'channel', desc: 'Private group to set the topic of.'
|
144
|
+
c.flag 'topic', desc: 'The new topic.'
|
145
|
+
c.action do |_global_options, options, _args|
|
146
|
+
puts JSON.dump($client.groups_setTopic(options))
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
g.desc 'This method unarchives a private group.'
|
151
|
+
g.long_desc %( This method unarchives a private group. )
|
152
|
+
g.command 'unarchive' do |c|
|
153
|
+
c.flag 'channel', desc: 'Group to unarchive.'
|
154
|
+
c.action do |_global_options, options, _args|
|
155
|
+
puts JSON.dump($client.groups_unarchive(options))
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
data/bin/commands/im.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Get info on your direct messages.'
|
4
|
+
command 'im' do |g|
|
5
|
+
g.desc 'This method closes a direct message channel.'
|
6
|
+
g.long_desc %( This method closes a direct message channel. )
|
7
|
+
g.command 'close' do |c|
|
8
|
+
c.flag 'channel', desc: 'Direct message channel to close.'
|
9
|
+
c.action do |_global_options, options, _args|
|
10
|
+
puts JSON.dump($client.im_close(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
g.desc 'This method returns a portion of messages/events from the specified direct message channel.'
|
15
|
+
g.long_desc %( This method returns a portion of messages/events from the specified direct message channel. To read the entire history for a direct message channel, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
|
16
|
+
g.command 'history' do |c|
|
17
|
+
c.flag 'channel', desc: 'Direct message channel to fetch history for.'
|
18
|
+
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
19
|
+
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
20
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
|
21
|
+
c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
|
22
|
+
c.action do |_global_options, options, _args|
|
23
|
+
puts JSON.dump($client.im_history(options))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
g.desc 'This method returns a list of all im channels that the user has.'
|
28
|
+
g.long_desc %( This method returns a list of all im channels that the user has. )
|
29
|
+
g.command 'list' do |c|
|
30
|
+
c.action do |_global_options, options, _args|
|
31
|
+
puts JSON.dump($client.im_list(options))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
g.desc 'This method moves the read cursor in a direct message channel.'
|
36
|
+
g.long_desc %( This method moves the read cursor in a direct message channel. )
|
37
|
+
g.command 'mark' do |c|
|
38
|
+
c.flag 'channel', desc: 'Direct message channel to set reading cursor in.'
|
39
|
+
c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
|
40
|
+
c.action do |_global_options, options, _args|
|
41
|
+
puts JSON.dump($client.im_mark(options))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
g.desc 'This method opens a direct message channel with another member of your Slack team.'
|
46
|
+
g.long_desc %( This method opens a direct message channel with another member of your Slack team. )
|
47
|
+
g.command 'open' do |c|
|
48
|
+
c.flag 'user', desc: 'User to open a direct message channel with.'
|
49
|
+
c.action do |_global_options, options, _args|
|
50
|
+
puts JSON.dump($client.im_open(options))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Get info on your multiparty direct messages.'
|
4
|
+
command 'mpim' do |g|
|
5
|
+
g.desc 'This method closes a multiparty direct message channel.'
|
6
|
+
g.long_desc %( This method closes a multiparty direct message channel. )
|
7
|
+
g.command 'close' do |c|
|
8
|
+
c.flag 'channel', desc: 'MPIM to close.'
|
9
|
+
c.action do |_global_options, options, _args|
|
10
|
+
puts JSON.dump($client.mpim_close(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
g.desc 'This method returns a portion of messages/events from the specified multiparty direct message channel.'
|
15
|
+
g.long_desc %( This method returns a portion of messages/events from the specified multiparty direct message channel. To read the entire history for a multiparty direct message, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
|
16
|
+
g.command 'history' do |c|
|
17
|
+
c.flag 'channel', desc: 'Multiparty direct message to fetch history for.'
|
18
|
+
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
19
|
+
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
20
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
|
21
|
+
c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
|
22
|
+
c.action do |_global_options, options, _args|
|
23
|
+
puts JSON.dump($client.mpim_history(options))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
g.desc 'This method returns a list of all multiparty direct message channels that the user has.'
|
28
|
+
g.long_desc %( This method returns a list of all multiparty direct message channels that the user has. )
|
29
|
+
g.command 'list' do |c|
|
30
|
+
c.action do |_global_options, options, _args|
|
31
|
+
puts JSON.dump($client.mpim_list(options))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
g.desc 'This method moves the read cursor in a multiparty direct message channel.'
|
36
|
+
g.long_desc %( This method moves the read cursor in a multiparty direct message channel. )
|
37
|
+
g.command 'mark' do |c|
|
38
|
+
c.flag 'channel', desc: 'multiparty direct message channel to set reading cursor in.'
|
39
|
+
c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
|
40
|
+
c.action do |_global_options, options, _args|
|
41
|
+
puts JSON.dump($client.mpim_mark(options))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
g.desc 'This method opens a multiparty direct message.'
|
46
|
+
g.long_desc %( This method opens a multiparty direct message. )
|
47
|
+
g.command 'open' do |c|
|
48
|
+
c.flag 'users', desc: 'Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.'
|
49
|
+
c.action do |_global_options, options, _args|
|
50
|
+
puts JSON.dump($client.mpim_open(options))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Oauth methods.'
|
4
|
+
command 'oauth' do |g|
|
5
|
+
g.desc 'This method allows you to exchange a temporary OAuth code for an API access token.'
|
6
|
+
g.long_desc %( This method allows you to exchange a temporary OAuth code for an API access token. This is used as part of the OAuth authentication flow. )
|
7
|
+
g.command 'access' do |c|
|
8
|
+
c.flag 'client_id', desc: 'Issued when you created your application.'
|
9
|
+
c.flag 'client_secret', desc: 'Issued when you created your application.'
|
10
|
+
c.flag 'code', desc: 'The code param returned via the OAuth callback.'
|
11
|
+
c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
|
12
|
+
c.action do |_global_options, options, _args|
|
13
|
+
puts JSON.dump($client.oauth_access(options))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Pins methods.'
|
4
|
+
command 'pins' do |g|
|
5
|
+
g.desc 'This method pins an item (file, file comment, channel message, or group message) to a particular channel.'
|
6
|
+
g.long_desc %( This method pins an item (file, file comment, channel message, or group message) to a particular channel. The channel argument is required and one of file, file_comment, or timestamp must also be specified. )
|
7
|
+
g.command 'add' do |c|
|
8
|
+
c.flag 'channel', desc: 'Channel to pin the item in.'
|
9
|
+
c.flag 'file', desc: 'File to pin.'
|
10
|
+
c.flag 'file_comment', desc: 'File comment to pin.'
|
11
|
+
c.flag 'timestamp', desc: 'Timestamp of the message to pin.'
|
12
|
+
c.action do |_global_options, options, _args|
|
13
|
+
puts JSON.dump($client.pins_add(options))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
g.desc 'This method lists the items pinned to a channel.'
|
18
|
+
g.long_desc %( This method lists the items pinned to a channel. )
|
19
|
+
g.command 'list' do |c|
|
20
|
+
c.flag 'channel', desc: 'Channel to get pinned items for.'
|
21
|
+
c.action do |_global_options, options, _args|
|
22
|
+
puts JSON.dump($client.pins_list(options))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
g.desc 'This method un-pins an item (file, file comment, channel message, or group message) from a channel.'
|
27
|
+
g.long_desc %( This method un-pins an item (file, file comment, channel message, or group message) from a channel. The channel argument is required and one of file, file_comment, or timestamp must also be specified. )
|
28
|
+
g.command 'remove' do |c|
|
29
|
+
c.flag 'channel', desc: 'Channel where the item is pinned to.'
|
30
|
+
c.flag 'file', desc: 'File to un-pin.'
|
31
|
+
c.flag 'file_comment', desc: 'File comment to un-pin.'
|
32
|
+
c.flag 'timestamp', desc: 'Timestamp of the message to un-pin.'
|
33
|
+
c.action do |_global_options, options, _args|
|
34
|
+
puts JSON.dump($client.pins_remove(options))
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Reactions methods.'
|
4
|
+
command 'reactions' do |g|
|
5
|
+
g.desc 'This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message).'
|
6
|
+
g.long_desc %( This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message). One of file, file_comment, or the combination of channel and timestamp must be specified. )
|
7
|
+
g.command 'add' do |c|
|
8
|
+
c.flag 'name', desc: 'Reaction (emoji) name.'
|
9
|
+
c.flag 'file', desc: 'File to add reaction to.'
|
10
|
+
c.flag 'file_comment', desc: 'File comment to add reaction to.'
|
11
|
+
c.flag 'channel', desc: 'Channel where the message to add reaction to was posted.'
|
12
|
+
c.flag 'timestamp', desc: 'Timestamp of the message to add reaction to.'
|
13
|
+
c.action do |_global_options, options, _args|
|
14
|
+
puts JSON.dump($client.reactions_add(options))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
g.desc 'This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message).'
|
19
|
+
g.long_desc %( This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message). )
|
20
|
+
g.command 'get' do |c|
|
21
|
+
c.flag 'file', desc: 'File to get reactions for.'
|
22
|
+
c.flag 'file_comment', desc: 'File comment to get reactions for.'
|
23
|
+
c.flag 'channel', desc: 'Channel where the message to get reactions for was posted.'
|
24
|
+
c.flag 'timestamp', desc: 'Timestamp of the message to get reactions for.'
|
25
|
+
c.flag 'full', desc: 'If true always return the complete reaction list.'
|
26
|
+
c.action do |_global_options, options, _args|
|
27
|
+
puts JSON.dump($client.reactions_get(options))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
g.desc 'This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user.'
|
32
|
+
g.long_desc %( This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user. )
|
33
|
+
g.command 'list' do |c|
|
34
|
+
c.flag 'user', desc: 'Show reactions made by this user. Defaults to the authed user.'
|
35
|
+
c.flag 'full', desc: 'If true always return the complete reaction list.'
|
36
|
+
c.action do |_global_options, options, _args|
|
37
|
+
puts JSON.dump($client.reactions_list(options))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
g.desc 'This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message).'
|
42
|
+
g.long_desc %( This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message). One of file, file_comment, or the combination of channel and timestamp must be specified. )
|
43
|
+
g.command 'remove' do |c|
|
44
|
+
c.flag 'name', desc: 'Reaction (emoji) name.'
|
45
|
+
c.flag 'file', desc: 'File to remove reaction from.'
|
46
|
+
c.flag 'file_comment', desc: 'File comment to remove reaction from.'
|
47
|
+
c.flag 'channel', desc: 'Channel where the message to remove reaction from was posted.'
|
48
|
+
c.flag 'timestamp', desc: 'Timestamp of the message to remove reaction from.'
|
49
|
+
c.action do |_global_options, options, _args|
|
50
|
+
puts JSON.dump($client.reactions_remove(options))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|