groupdocs 0.3.11 → 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.
- data/CHANGELOG.md +150 -0
- data/README.md +6 -58
- data/Rakefile +1 -1
- data/examples/README.md +13 -0
- data/examples/annotations/Gemfile +5 -0
- data/examples/annotations/app.rb +67 -0
- data/groupdocs.gemspec +3 -3
- data/lib/groupdocs.rb +11 -2
- data/lib/groupdocs/api/entity.rb +17 -1
- data/lib/groupdocs/api/helpers/path_helper.rb +10 -10
- data/lib/groupdocs/api/helpers/rest_helper.rb +7 -2
- data/lib/groupdocs/api/helpers/url_helper.rb +2 -4
- data/lib/groupdocs/api/request.rb +2 -4
- data/lib/groupdocs/datasource.rb +2 -2
- data/lib/groupdocs/datasource/field.rb +1 -1
- data/lib/groupdocs/document.rb +6 -18
- data/lib/groupdocs/document/annotation.rb +25 -2
- data/lib/groupdocs/document/annotation/reply.rb +6 -10
- data/lib/groupdocs/document/change.rb +1 -1
- data/lib/groupdocs/document/field.rb +1 -1
- data/lib/groupdocs/document/metadata.rb +1 -1
- data/lib/groupdocs/document/rectangle.rb +1 -1
- data/lib/groupdocs/document/view.rb +1 -1
- data/lib/groupdocs/job.rb +51 -8
- data/lib/groupdocs/questionnaire.rb +2 -2
- data/lib/groupdocs/questionnaire/execution.rb +1 -1
- data/lib/groupdocs/questionnaire/page.rb +1 -1
- data/lib/groupdocs/questionnaire/question.rb +1 -1
- data/lib/groupdocs/questionnaire/question/answer.rb +1 -1
- data/lib/groupdocs/signature.rb +134 -0
- data/lib/groupdocs/signature/contact.rb +141 -0
- data/lib/groupdocs/signature/envelope.rb +376 -0
- data/lib/groupdocs/signature/envelope/log.rb +22 -0
- data/lib/groupdocs/signature/field.rb +253 -0
- data/lib/groupdocs/signature/field/location.rb +72 -0
- data/lib/groupdocs/signature/form.rb +202 -0
- data/lib/groupdocs/signature/list.rb +93 -0
- data/lib/groupdocs/signature/recipient.rb +47 -0
- data/lib/groupdocs/signature/role.rb +84 -0
- data/lib/groupdocs/signature/shared.rb +6 -0
- data/lib/groupdocs/signature/shared/document_methods.rb +98 -0
- data/lib/groupdocs/signature/shared/entity_fields.rb +94 -0
- data/lib/groupdocs/signature/shared/entity_methods.rb +145 -0
- data/lib/groupdocs/signature/shared/field_methods.rb +282 -0
- data/lib/groupdocs/signature/shared/recipient_methods.rb +63 -0
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -0
- data/lib/groupdocs/signature/template.rb +104 -0
- data/lib/groupdocs/storage/file.rb +69 -62
- data/lib/groupdocs/storage/folder.rb +54 -88
- data/lib/groupdocs/storage/package.rb +1 -1
- data/lib/groupdocs/subscription.rb +113 -0
- data/lib/groupdocs/subscription/limit.rb +24 -0
- data/lib/groupdocs/user.rb +22 -2
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/api/entity_spec.rb +14 -0
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +6 -19
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +9 -0
- data/spec/groupdocs/api/request_spec.rb +2 -7
- data/spec/groupdocs/datasource_spec.rb +3 -7
- data/spec/groupdocs/document/annotation/reply_spec.rb +11 -20
- data/spec/groupdocs/document/annotation_spec.rb +35 -31
- data/spec/groupdocs/document/field_spec.rb +1 -4
- data/spec/groupdocs/document/rectangle_spec.rb +10 -22
- data/spec/groupdocs/document_spec.rb +7 -27
- data/spec/groupdocs/job_spec.rb +43 -0
- data/spec/groupdocs/questionnaire/question_spec.rb +2 -6
- data/spec/groupdocs/questionnaire_spec.rb +3 -7
- data/spec/groupdocs/signature/contact_spec.rb +129 -0
- data/spec/groupdocs/signature/envelope/log_spec.rb +23 -0
- data/spec/groupdocs/signature/envelope_spec.rb +296 -0
- data/spec/groupdocs/signature/field/location_spec.rb +73 -0
- data/spec/groupdocs/signature/field_spec.rb +264 -0
- data/spec/groupdocs/signature/form_spec.rb +174 -0
- data/spec/groupdocs/signature/list_spec.rb +92 -0
- data/spec/groupdocs/signature/recipient_spec.rb +37 -0
- data/spec/groupdocs/signature/role_spec.rb +100 -0
- data/spec/groupdocs/signature/template_spec.rb +82 -0
- data/spec/groupdocs/signature_spec.rb +117 -0
- data/spec/groupdocs/storage/file_spec.rb +76 -61
- data/spec/groupdocs/storage/folder_spec.rb +43 -90
- data/spec/groupdocs/storage/package_spec.rb +1 -2
- data/spec/groupdocs/subscription/limit_spec.rb +24 -0
- data/spec/groupdocs/subscription_spec.rb +85 -0
- data/spec/groupdocs/user_spec.rb +27 -18
- data/spec/groupdocs_spec.rb +11 -0
- data/spec/spec_helper.rb +10 -1
- data/spec/support/files/envelope.zip +0 -0
- data/spec/support/json/annotation_access_set.json +11 -0
- data/spec/support/json/contact_add.json +12 -0
- data/spec/support/json/contacts_get.json +19 -0
- data/spec/support/json/contacts_import.json +8 -0
- data/spec/support/json/envelope_get.json +46 -0
- data/spec/support/json/envelope_logs.json +16 -0
- data/spec/support/json/envelopes_all.json +48 -0
- data/spec/support/json/envelopes_resources.json +31 -0
- data/spec/support/json/form_get.json +21 -0
- data/spec/support/json/forms_all.json +23 -0
- data/spec/support/json/job_get.json +30 -0
- data/spec/support/json/list_add.json +12 -0
- data/spec/support/json/lists_get.json +19 -0
- data/spec/support/json/signature_create.json +12 -0
- data/spec/support/json/signature_field_add.json +25 -0
- data/spec/support/json/signature_fields_get.json +27 -0
- data/spec/support/json/signature_roles_get.json +17 -0
- data/spec/support/json/signatures_get.json +19 -0
- data/spec/support/json/subscription_plan_get.json +9 -0
- data/spec/support/json/subscription_plans_get.json +17 -0
- data/spec/support/json/template_get.json +35 -0
- data/spec/support/json/template_get_documents.json +15 -0
- data/spec/support/json/template_get_recipients.json +20 -0
- data/spec/support/json/templates_all.json +37 -0
- data/spec/support/json/user_users_get.json +27 -0
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -0
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +89 -0
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -0
- data/spec/support/shared_examples/signature/shared/field_methods.rb +188 -0
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +42 -0
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -0
- metadata +139 -29
- data/lib/groupdocs/extensions.rb +0 -1
- data/lib/groupdocs/extensions/lookup.rb +0 -52
- data/spec/support/shared_examples/extensions/lookup.rb +0 -57
|
@@ -1,63 +1,73 @@
|
|
|
1
1
|
module GroupDocs
|
|
2
2
|
module Storage
|
|
3
|
-
class File <
|
|
3
|
+
class File < Api::Entity
|
|
4
4
|
|
|
5
|
-
extend Extensions::Lookup
|
|
6
5
|
include Api::Helpers::AccessMode
|
|
6
|
+
include Api::Helpers::Path
|
|
7
7
|
|
|
8
8
|
DOCUMENT_TYPES = %w(Undefined Cells Words Slides Pdf Html Image)
|
|
9
9
|
|
|
10
10
|
#
|
|
11
11
|
# Uploads file to API server.
|
|
12
12
|
#
|
|
13
|
-
# @example
|
|
14
|
-
# GroupDocs::Storage::File.upload!('resume.pdf'
|
|
13
|
+
# @example Upload file to root directory
|
|
14
|
+
# GroupDocs::Storage::File.upload!('resume.pdf')
|
|
15
|
+
#
|
|
16
|
+
# @example Upload file to specific directory
|
|
17
|
+
# GroupDocs::Storage::File.upload!('resume.pdf', path: 'folder1')
|
|
18
|
+
#
|
|
19
|
+
# @example Upload and rename file
|
|
20
|
+
# GroupDocs::Storage::File.upload!('resume.pdf', name: 'cv.pdf')
|
|
21
|
+
#
|
|
22
|
+
# @example Upload file with description
|
|
23
|
+
# GroupDocs::Storage::File.upload!('resume.pdf', description: 'Resume')
|
|
15
24
|
#
|
|
16
25
|
# @param [String] filepath Path to file to be uploaded
|
|
17
|
-
# @param [
|
|
18
|
-
#
|
|
26
|
+
# @param [Hash] options
|
|
27
|
+
# @option options [String] path Folder path to upload to
|
|
28
|
+
# @option options [String] name Name of file to be renamed
|
|
29
|
+
# @option options [String] description File description
|
|
19
30
|
# @param [Hash] access Access credentials
|
|
20
31
|
# @option access [String] :client_id
|
|
21
32
|
# @option access [String] :private_key
|
|
22
33
|
# @return [GroupDocs::Storage::File]
|
|
23
34
|
#
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Api::Helpers::Path.append_file_name(upload_path, filepath)
|
|
35
|
+
def self.upload!(filepath, options = {}, access = {})
|
|
36
|
+
options[:path] ||= ''
|
|
37
|
+
options[:name] ||= Object::File.basename(filepath)
|
|
38
|
+
path = prepare_path("#{options[:path]}/#{options[:name]}")
|
|
29
39
|
|
|
30
|
-
|
|
40
|
+
api = Api::Request.new do |request|
|
|
31
41
|
request[:access] = access
|
|
32
42
|
request[:method] = :POST
|
|
33
|
-
request[:path] = "/storage/{{client_id}}/folders
|
|
43
|
+
request[:path] = "/storage/{{client_id}}/folders/#{path}"
|
|
34
44
|
request[:request_body] = Object::File.new(filepath, 'rb')
|
|
35
|
-
end
|
|
45
|
+
end
|
|
46
|
+
api.add_params(description: options[:description]) if options[:description]
|
|
47
|
+
json = api.execute!
|
|
36
48
|
|
|
37
49
|
Storage::File.new(json)
|
|
38
50
|
end
|
|
39
51
|
|
|
40
52
|
#
|
|
41
|
-
#
|
|
53
|
+
# Uploads web page as file.
|
|
42
54
|
#
|
|
43
|
-
# @param [String]
|
|
55
|
+
# @param [String] url
|
|
44
56
|
# @param [Hash] access Access credentials
|
|
45
57
|
# @option access [String] :client_id
|
|
46
58
|
# @option access [String] :private_key
|
|
47
|
-
# @return [
|
|
48
|
-
#
|
|
49
|
-
def self.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
files += all!("#{path}/#{entity.name}", access)
|
|
55
|
-
else
|
|
56
|
-
files << entity
|
|
57
|
-
end
|
|
59
|
+
# @return [GroupDocs::Storage::File]
|
|
60
|
+
#
|
|
61
|
+
def self.upload_web!(url, access = {})
|
|
62
|
+
api = Api::Request.new do |request|
|
|
63
|
+
request[:access] = access
|
|
64
|
+
request[:method] = :POST
|
|
65
|
+
request[:path] = '/storage/{{client_id}}/urls'
|
|
58
66
|
end
|
|
67
|
+
api.add_params(url: url)
|
|
68
|
+
json = api.execute!
|
|
59
69
|
|
|
60
|
-
|
|
70
|
+
Storage::File.new(json)
|
|
61
71
|
end
|
|
62
72
|
|
|
63
73
|
# @attr [Integer] id
|
|
@@ -152,26 +162,6 @@ module GroupDocs
|
|
|
152
162
|
Time.at(@modified_on / 1000)
|
|
153
163
|
end
|
|
154
164
|
|
|
155
|
-
#
|
|
156
|
-
# Uploads file to server.
|
|
157
|
-
#
|
|
158
|
-
# Note that it doesn't update self and instead returns new instance.
|
|
159
|
-
#
|
|
160
|
-
# @example
|
|
161
|
-
# file = GroupDocs::Storage::File.new(name: 'document_one.doc', path: File.dirname(__FILE__))
|
|
162
|
-
# file = file.upload!
|
|
163
|
-
#
|
|
164
|
-
# @param [String] upload_path Full path to directory to upload file to starting with "/".
|
|
165
|
-
# You can also add filename and then uploaded file will use it.
|
|
166
|
-
# @param [Hash] access Access credentials
|
|
167
|
-
# @option access [String] :client_id
|
|
168
|
-
# @option access [String] :private_key
|
|
169
|
-
# @return [GroupDocs::Storage::File]
|
|
170
|
-
#
|
|
171
|
-
def upload!(upload_path = '/', access = {})
|
|
172
|
-
self.class.upload!("#{path}/#{name}", upload_path, access)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
165
|
#
|
|
176
166
|
# Downloads file to given path.
|
|
177
167
|
#
|
|
@@ -199,22 +189,23 @@ module GroupDocs
|
|
|
199
189
|
#
|
|
200
190
|
# Moves file to given path.
|
|
201
191
|
#
|
|
202
|
-
# @param [String] path
|
|
203
|
-
#
|
|
192
|
+
# @param [String] path
|
|
193
|
+
# @param [Hash] options
|
|
194
|
+
# @option options [String] name
|
|
204
195
|
# @param [Hash] access Access credentials
|
|
205
196
|
# @option access [String] :client_id
|
|
206
197
|
# @option access [String] :private_key
|
|
207
198
|
# @return [GroupDocs::Storage::File] Moved to file
|
|
208
199
|
#
|
|
209
|
-
def move!(path, access = {})
|
|
210
|
-
|
|
211
|
-
|
|
200
|
+
def move!(path, options = {}, access = {})
|
|
201
|
+
options[:name] ||= name
|
|
202
|
+
path = prepare_path("#{path}/#{options[:name]}")
|
|
212
203
|
|
|
213
204
|
json = Api::Request.new do |request|
|
|
214
205
|
request[:access] = access
|
|
215
206
|
request[:method] = :PUT
|
|
216
207
|
request[:headers] = { :'Groupdocs-Move' => id }
|
|
217
|
-
request[:path] = "/storage/{{client_id}}/files
|
|
208
|
+
request[:path] = "/storage/{{client_id}}/files/#{path}"
|
|
218
209
|
end.execute!
|
|
219
210
|
|
|
220
211
|
Storage::File.new(json[:dst_file])
|
|
@@ -230,28 +221,29 @@ module GroupDocs
|
|
|
230
221
|
# @return [GroupDocs::Storage::File] Renamed file
|
|
231
222
|
#
|
|
232
223
|
def rename!(name, access = {})
|
|
233
|
-
move!(
|
|
224
|
+
move!(path, { name: name }, access)
|
|
234
225
|
end
|
|
235
226
|
|
|
236
227
|
#
|
|
237
228
|
# Moves file to given path.
|
|
238
229
|
#
|
|
239
|
-
# @param [String] path
|
|
240
|
-
#
|
|
230
|
+
# @param [String] path
|
|
231
|
+
# @param [Hash] options
|
|
232
|
+
# @option options [String] name
|
|
241
233
|
# @param [Hash] access Access credentials
|
|
242
234
|
# @option access [String] :client_id
|
|
243
235
|
# @option access [String] :private_key
|
|
244
236
|
# @return [GroupDocs::Storage::File] Copied to file
|
|
245
237
|
#
|
|
246
|
-
def copy!(path, access = {})
|
|
247
|
-
|
|
248
|
-
|
|
238
|
+
def copy!(path, options = {}, access = {})
|
|
239
|
+
options[:name] ||= name
|
|
240
|
+
path = prepare_path("#{path}/#{options[:name]}")
|
|
249
241
|
|
|
250
242
|
json = Api::Request.new do |request|
|
|
251
243
|
request[:access] = access
|
|
252
244
|
request[:method] = :PUT
|
|
253
245
|
request[:headers] = { :'Groupdocs-Copy' => id }
|
|
254
|
-
request[:path] = "/storage/{{client_id}}/files
|
|
246
|
+
request[:path] = "/storage/{{client_id}}/files/#{path}"
|
|
255
247
|
end.execute!
|
|
256
248
|
|
|
257
249
|
Storage::File.new(json[:dst_file])
|
|
@@ -272,7 +264,7 @@ module GroupDocs
|
|
|
272
264
|
request[:path] = "/storage/{{client_id}}/files/#{id}/archive/zip"
|
|
273
265
|
end.execute!
|
|
274
266
|
|
|
275
|
-
#
|
|
267
|
+
# add filename for further file operations
|
|
276
268
|
json[:name] = "#{name}.zip"
|
|
277
269
|
Storage::File.new(json)
|
|
278
270
|
end
|
|
@@ -292,6 +284,21 @@ module GroupDocs
|
|
|
292
284
|
end.execute!
|
|
293
285
|
end
|
|
294
286
|
|
|
287
|
+
#
|
|
288
|
+
# Moves file to trash on server.
|
|
289
|
+
#
|
|
290
|
+
# @param [Hash] access Access credentials
|
|
291
|
+
# @option access [String] :client_id
|
|
292
|
+
# @option access [String] :private_key
|
|
293
|
+
#
|
|
294
|
+
def move_to_trash!(access = {})
|
|
295
|
+
Api::Request.new do |request|
|
|
296
|
+
request[:access] = access
|
|
297
|
+
request[:method] = :PUT
|
|
298
|
+
request[:path] = "/storage/{{client_id}}/trash/#{path}/#{name}"
|
|
299
|
+
end.execute!
|
|
300
|
+
end
|
|
301
|
+
|
|
295
302
|
#
|
|
296
303
|
# Converts file to GroupDocs::Document.
|
|
297
304
|
#
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
module GroupDocs
|
|
2
2
|
module Storage
|
|
3
|
-
class Folder <
|
|
3
|
+
class Folder < Api::Entity
|
|
4
4
|
|
|
5
|
-
extend Extensions::Lookup
|
|
6
5
|
include Api::Helpers::AccessMode
|
|
6
|
+
include Api::Helpers::Path
|
|
7
7
|
|
|
8
8
|
#
|
|
9
9
|
# Creates folder on server.
|
|
@@ -15,39 +15,17 @@ module GroupDocs
|
|
|
15
15
|
# @return [GroupDocs::Storage::Folder] Created folder
|
|
16
16
|
#
|
|
17
17
|
def self.create!(path, access = {})
|
|
18
|
-
|
|
18
|
+
path = prepare_path(path)
|
|
19
19
|
|
|
20
20
|
json = Api::Request.new do |request|
|
|
21
21
|
request[:access] = access
|
|
22
22
|
request[:method] = :POST
|
|
23
|
-
request[:path] = "/storage/{{client_id}}/paths
|
|
23
|
+
request[:path] = "/storage/{{client_id}}/paths/#{path}"
|
|
24
24
|
end.execute!
|
|
25
25
|
|
|
26
26
|
Storage::Folder.new(json)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
#
|
|
30
|
-
# Returns an array of all folders on server starting with given path.
|
|
31
|
-
#
|
|
32
|
-
# @param [String] path Starting path to look for folders
|
|
33
|
-
# @param [Hash] access Access credentials
|
|
34
|
-
# @option access [String] :client_id
|
|
35
|
-
# @option access [String] :private_key
|
|
36
|
-
# @return [Array<GroupDocs::Storage::Folder>]
|
|
37
|
-
#
|
|
38
|
-
def self.all!(path = '/', access = {})
|
|
39
|
-
folders = Array.new
|
|
40
|
-
folder = GroupDocs::Storage::Folder.new(path: path)
|
|
41
|
-
folder.list!({}, access).each do |entity|
|
|
42
|
-
if entity.is_a?(GroupDocs::Storage::Folder)
|
|
43
|
-
folders << entity
|
|
44
|
-
folders += all!("#{path}/#{entity.name}", access)
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
folders
|
|
49
|
-
end
|
|
50
|
-
|
|
51
29
|
#
|
|
52
30
|
# Returns a list of all directories and files in the path.
|
|
53
31
|
#
|
|
@@ -62,8 +40,8 @@ module GroupDocs
|
|
|
62
40
|
# @option access [String] :private_key
|
|
63
41
|
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
|
64
42
|
#
|
|
65
|
-
def self.list!(path = '
|
|
66
|
-
|
|
43
|
+
def self.list!(path = '', options = {}, access = {})
|
|
44
|
+
path = prepare_path(path)
|
|
67
45
|
new(path: path).list!(options, access)
|
|
68
46
|
end
|
|
69
47
|
|
|
@@ -120,98 +98,86 @@ module GroupDocs
|
|
|
120
98
|
end
|
|
121
99
|
|
|
122
100
|
#
|
|
123
|
-
#
|
|
101
|
+
# Returns an array of files and folders.
|
|
124
102
|
#
|
|
125
|
-
# @param [
|
|
103
|
+
# @param [Hash] options Hash of options
|
|
104
|
+
# @option options [Integer] :page Page to start with
|
|
105
|
+
# @option options [Integer] :count How many items to list
|
|
106
|
+
# @option options [String] :order_by Field name to sort by
|
|
107
|
+
# @option options [Boolean] :order_asc Set to true to return in ascending order
|
|
126
108
|
# @param [Hash] access Access credentials
|
|
127
109
|
# @option access [String] :client_id
|
|
128
110
|
# @option access [String] :private_key
|
|
129
|
-
# @return [
|
|
111
|
+
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
|
130
112
|
#
|
|
131
|
-
def
|
|
132
|
-
|
|
133
|
-
|
|
113
|
+
def list!(options = {}, access = {})
|
|
114
|
+
options[:order_by].capitalize! if options[:order_by]
|
|
115
|
+
full_path = prepare_path("#{path}/#{name}")
|
|
134
116
|
|
|
135
|
-
Api::Request.new do |request|
|
|
117
|
+
api = Api::Request.new do |request|
|
|
136
118
|
request[:access] = access
|
|
137
|
-
request[:method] = :
|
|
138
|
-
request[:
|
|
139
|
-
|
|
140
|
-
|
|
119
|
+
request[:method] = :GET
|
|
120
|
+
request[:path] = "/storage/{{client_id}}/folders/#{full_path}"
|
|
121
|
+
end
|
|
122
|
+
api.add_params(options)
|
|
123
|
+
json = api.execute!
|
|
141
124
|
|
|
142
|
-
|
|
143
|
-
|
|
125
|
+
folders = json[:folders].map do |folder|
|
|
126
|
+
folder.merge!(path: full_path)
|
|
127
|
+
Storage::Folder.new(folder)
|
|
128
|
+
end
|
|
129
|
+
files = json[:files].map do |file|
|
|
130
|
+
file.merge!(path: full_path)
|
|
131
|
+
Storage::File.new(file)
|
|
132
|
+
end
|
|
144
133
|
|
|
145
|
-
|
|
146
|
-
# Renames folder to new one.
|
|
147
|
-
#
|
|
148
|
-
# @param [String] name New name
|
|
149
|
-
# @param [Hash] access Access credentials
|
|
150
|
-
# @option access [String] :client_id
|
|
151
|
-
# @option access [String] :private_key
|
|
152
|
-
# @return [String] New name
|
|
153
|
-
#
|
|
154
|
-
def rename!(name, access = {})
|
|
155
|
-
move!("/#{name}", access).sub(/^\//, '')
|
|
134
|
+
folders + files
|
|
156
135
|
end
|
|
157
136
|
|
|
158
137
|
#
|
|
159
|
-
#
|
|
138
|
+
# Moves folder contents to given path.
|
|
160
139
|
#
|
|
161
|
-
# @param [String]
|
|
140
|
+
# @param [String] destination Destination to move contents to
|
|
162
141
|
# @param [Hash] access Access credentials
|
|
163
142
|
# @option access [String] :client_id
|
|
164
143
|
# @option access [String] :private_key
|
|
165
|
-
# @return [String]
|
|
144
|
+
# @return [String] Moved to folder path
|
|
166
145
|
#
|
|
167
|
-
def
|
|
168
|
-
|
|
169
|
-
|
|
146
|
+
def move!(destination, access = {})
|
|
147
|
+
src_path = prepare_path(path)
|
|
148
|
+
dst_path = prepare_path("#{destination}/#{name}")
|
|
170
149
|
|
|
171
150
|
Api::Request.new do |request|
|
|
172
151
|
request[:access] = access
|
|
173
152
|
request[:method] = :PUT
|
|
174
|
-
request[:headers] = { :'Groupdocs-
|
|
175
|
-
request[:path] = "/storage/{{client_id}}/folders
|
|
153
|
+
request[:headers] = { :'Groupdocs-Move' => src_path }
|
|
154
|
+
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
|
176
155
|
end.execute!
|
|
177
156
|
|
|
178
|
-
|
|
157
|
+
dst_path
|
|
179
158
|
end
|
|
180
159
|
|
|
181
160
|
#
|
|
182
|
-
#
|
|
161
|
+
# Copies folder contents to given path.
|
|
183
162
|
#
|
|
184
|
-
# @param [
|
|
185
|
-
# @option options [Integer] :page Page to start with
|
|
186
|
-
# @option options [Integer] :count How many items to list
|
|
187
|
-
# @option options [String] :order_by Field name to sort by
|
|
188
|
-
# @option options [Boolean] :order_asc Set to true to return in ascending order
|
|
163
|
+
# @param [String] destination_path Destination to copy contents to
|
|
189
164
|
# @param [Hash] access Access credentials
|
|
190
165
|
# @option access [String] :client_id
|
|
191
166
|
# @option access [String] :private_key
|
|
192
|
-
# @return [
|
|
167
|
+
# @return [String] Copied to folder path
|
|
193
168
|
#
|
|
194
|
-
def
|
|
195
|
-
|
|
169
|
+
def copy!(destination, access = {})
|
|
170
|
+
src_path = prepare_path(path)
|
|
171
|
+
dst_path = prepare_path("#{destination}/#{name}")
|
|
196
172
|
|
|
197
|
-
|
|
173
|
+
Api::Request.new do |request|
|
|
198
174
|
request[:access] = access
|
|
199
|
-
request[:method] = :
|
|
200
|
-
request[:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
json = api.execute!
|
|
204
|
-
|
|
205
|
-
folders = json[:folders].map do |folder|
|
|
206
|
-
folder.merge!(path: path)
|
|
207
|
-
Storage::Folder.new(folder)
|
|
208
|
-
end
|
|
209
|
-
files = json[:files].map do |file|
|
|
210
|
-
file.merge!(path: path)
|
|
211
|
-
Storage::File.new(file)
|
|
212
|
-
end
|
|
175
|
+
request[:method] = :PUT
|
|
176
|
+
request[:headers] = { :'Groupdocs-Copy' => src_path }
|
|
177
|
+
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
|
178
|
+
end.execute!
|
|
213
179
|
|
|
214
|
-
|
|
180
|
+
dst_path
|
|
215
181
|
end
|
|
216
182
|
|
|
217
183
|
#
|
|
@@ -229,7 +195,7 @@ module GroupDocs
|
|
|
229
195
|
# @return [GroupDocs::Storage::Folder] Created folder
|
|
230
196
|
#
|
|
231
197
|
def create!(access = {})
|
|
232
|
-
self.class.create!("/#{name}", access
|
|
198
|
+
self.class.create! prepare_path("#{path}/#{name}"), access
|
|
233
199
|
end
|
|
234
200
|
|
|
235
201
|
#
|
|
@@ -243,7 +209,7 @@ module GroupDocs
|
|
|
243
209
|
Api::Request.new do |request|
|
|
244
210
|
request[:access] = access
|
|
245
211
|
request[:method] = :DELETE
|
|
246
|
-
request[:path] = "/storage/{{client_id}}/folders/#{path}/#{name}"
|
|
212
|
+
request[:path] = "/storage/{{client_id}}/folders/#{prepare_path("#{path}/#{name}")}"
|
|
247
213
|
end.execute!
|
|
248
214
|
end
|
|
249
215
|
|