-
-
Notifications
You must be signed in to change notification settings - Fork 215
/
files.rb
151 lines (143 loc) · 7.43 KB
/
files.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# frozen_string_literal: true
# This file was auto-generated by lib/tasks/web.rake
module Slack
module Web
module Api
module Endpoints
module Files
#
# Deletes a file.
#
# @option options [file] :file
# ID of file to delete.
# @see https://api.slack.com/methods/files.delete
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.delete.json
def files_delete(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
post('files.delete', options)
end
#
# Change the properties of a file (undocumented)
#
# @option options [Object] :file
# ID of the file to be edited
# @option options [Object] :title
# New title of the file
# @option options [Object] :filetype
# New filetype of the file. See https://api.slack.com/types/file#file_types for a list of all supported types.
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/files/files.edit.json
def files_edit(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
throw ArgumentError.new('Required arguments :title missing') if options[:title].nil?
logger.warn('The files.edit method is undocumented.')
post('files.edit', options)
end
#
# Gets information about a team file.
#
# @option options [file] :file
# Specify a file by providing its ID.
# @option options [Object] :cursor
# Parameter for pagination. File comments are paginated for a single file. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection of comments. See pagination for more details.
# @option options [Object] :limit
# The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
# @see https://api.slack.com/methods/files.info
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.info.json
def files_info(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
if block_given?
Pagination::Cursor.new(self, :files_info, options).each do |page|
yield page
end
else
post('files.info', options)
end
end
#
# Lists & filters team files.
#
# @option options [channel] :channel
# Filter files appearing in a specific channel, indicated by its ID.
# @option options [Object] :show_files_hidden_by_limit
# Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.
# @option options [Object] :ts_from
# Filter files created after this timestamp (inclusive).
# @option options [Object] :ts_to
# Filter files created before this timestamp (inclusive).
# @option options [Object] :types
# Filter files by type (see below). You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
# @option options [user] :user
# Filter files created by a single user.
# @see https://api.slack.com/methods/files.list
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.list.json
def files_list(options = {})
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
post('files.list', options)
end
#
# Revokes public/external sharing access for a file
#
# @option options [file] :file
# File to revoke.
# @see https://api.slack.com/methods/files.revokePublicURL
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.revokePublicURL.json
def files_revokePublicURL(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
post('files.revokePublicURL', options)
end
#
# Share an existing file in a channel (undocumented)
#
# @option options [Object] :file
# ID of the file to be shared
# @option options [channel] :channel
# Channel to share the file in. Works with both public (channel ID) and private channels (group ID).
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/files/files.share.json
def files_share(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
logger.warn('The files.share method is undocumented.')
post('files.share', options)
end
#
# Enables a file for public/external sharing.
#
# @option options [file] :file
# File to share.
# @see https://api.slack.com/methods/files.sharedPublicURL
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.sharedPublicURL.json
def files_sharedPublicURL(options = {})
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
post('files.sharedPublicURL', options)
end
#
# Uploads or creates a file.
#
# @option options [Object] :channels
# Comma-separated list of channel names or IDs where the file will be shared.
# @option options [Object] :content
# File contents via a POST variable. If omitting this parameter, you must provide a file.
# @option options [file] :file
# File contents via multipart/form-data. If omitting this parameter, you must submit content.
# @option options [Object] :filename
# Filename of file.
# @option options [Object] :filetype
# A file type identifier.
# @option options [Object] :initial_comment
# The message text introducing the file in specified channels.
# @option options [Object] :thread_ts
# Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead.
# @option options [Object] :title
# Title of file.
# @see https://api.slack.com/methods/files.upload
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.upload.json
def files_upload(options = {})
post('files.upload', options)
end
end
end
end
end
end