groupdocs 2.2.0 → 2.3.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 +7 -0
- data/.travis.yml +9 -9
- data/CHANGELOG.md +482 -477
- data/Gemfile +3 -3
- data/LICENSE.txt +21 -21
- data/README.md +94 -94
- data/Rakefile +9 -9
- data/examples/README.md +12 -12
- data/examples/api-samples/Gemfile +5 -5
- data/examples/api-samples/Gemfile.lock +49 -49
- data/examples/api-samples/README.md +23 -23
- data/examples/api-samples/public/css/style.css +229 -229
- data/examples/api-samples/public/docs/annotation-sample.html +167 -167
- data/examples/api-samples/public/docs/docco.css +500 -500
- data/examples/api-samples/public/docs/envelope-sample.html +374 -374
- data/examples/api-samples/public/docs/sample01.html +181 -181
- data/examples/api-samples/public/docs/sample02.html +199 -199
- data/examples/api-samples/public/docs/sample03.html +318 -318
- data/examples/api-samples/public/docs/sample04.html +217 -217
- data/examples/api-samples/public/docs/sample05.html +296 -296
- data/examples/api-samples/public/docs/sample06.html +347 -347
- data/examples/api-samples/public/docs/sample07.html +209 -209
- data/examples/api-samples/public/docs/sample08.html +277 -277
- data/examples/api-samples/public/docs/sample09.html +314 -314
- data/examples/api-samples/public/docs/sample10.html +270 -270
- data/examples/api-samples/public/docs/sample11.html +462 -462
- data/examples/api-samples/public/docs/sample12.html +199 -199
- data/examples/api-samples/public/docs/sample13.html +201 -201
- data/examples/api-samples/public/docs/sample14.html +204 -204
- data/examples/api-samples/public/docs/sample15.html +182 -182
- data/examples/api-samples/public/docs/sample16.html +234 -234
- data/examples/api-samples/public/docs/sample17.html +309 -309
- data/examples/api-samples/public/docs/sample18.html +721 -721
- data/examples/api-samples/public/docs/sample19.html +631 -631
- data/examples/api-samples/public/docs/sample20.html +230 -230
- data/examples/api-samples/public/docs/sample21.html +790 -790
- data/examples/api-samples/public/docs/sample22.html +408 -408
- data/examples/api-samples/public/docs/sample25.html +550 -550
- data/examples/api-samples/public/templates/base-simple_source.html +191 -191
- data/examples/api-samples/public/templates/testdocument.html +100 -100
- data/examples/api-samples/public/templates/welcome.htm +137 -137
- data/examples/api-samples/samples/annotation-sample.rb +56 -56
- data/examples/api-samples/samples/envelope-sample.rb +133 -133
- data/examples/api-samples/samples/sample01.rb +44 -44
- data/examples/api-samples/samples/sample02.rb +50 -50
- data/examples/api-samples/samples/sample03.rb +79 -79
- data/examples/api-samples/samples/sample04.rb +54 -54
- data/examples/api-samples/samples/sample05.rb +83 -83
- data/examples/api-samples/samples/sample06.rb +86 -86
- data/examples/api-samples/samples/sample07.rb +59 -59
- data/examples/api-samples/samples/sample08.rb +76 -76
- data/examples/api-samples/samples/sample09.rb +85 -85
- data/examples/api-samples/samples/sample10.rb +70 -70
- data/examples/api-samples/samples/sample11.rb +132 -132
- data/examples/api-samples/samples/sample12.rb +48 -48
- data/examples/api-samples/samples/sample13.rb +49 -49
- data/examples/api-samples/samples/sample14.rb +54 -54
- data/examples/api-samples/samples/sample15.rb +43 -43
- data/examples/api-samples/samples/sample16.rb +57 -57
- data/examples/api-samples/samples/sample17.rb +70 -70
- data/examples/api-samples/samples/sample18.rb +190 -190
- data/examples/api-samples/samples/sample19.rb +188 -188
- data/examples/api-samples/samples/sample20.rb +68 -68
- data/examples/api-samples/samples/sample21.rb +212 -212
- data/examples/api-samples/samples/sample22.rb +109 -109
- data/examples/api-samples/samples/sample25.rb +127 -127
- data/examples/api-samples/views/_others_samples.haml +233 -233
- data/examples/api-samples/views/annotation_sample.haml +63 -63
- data/examples/api-samples/views/envelope_sample.haml +72 -72
- data/examples/api-samples/views/index.haml +235 -235
- data/examples/api-samples/views/layout.haml +3 -3
- data/examples/api-samples/views/sample01.haml +63 -63
- data/examples/api-samples/views/sample02.haml +52 -52
- data/examples/api-samples/views/sample03.haml +87 -87
- data/examples/api-samples/views/sample04.haml +55 -55
- data/examples/api-samples/views/sample05.haml +86 -86
- data/examples/api-samples/views/sample06.haml +58 -58
- data/examples/api-samples/views/sample07.haml +52 -52
- data/examples/api-samples/views/sample08.haml +100 -100
- data/examples/api-samples/views/sample09.haml +95 -95
- data/examples/api-samples/views/sample10.haml +93 -93
- data/examples/api-samples/views/sample11.haml +140 -140
- data/examples/api-samples/views/sample12.haml +68 -68
- data/examples/api-samples/views/sample13.haml +64 -64
- data/examples/api-samples/views/sample14.haml +60 -60
- data/examples/api-samples/views/sample15.haml +51 -51
- data/examples/api-samples/views/sample16.haml +50 -50
- data/examples/api-samples/views/sample17.haml +54 -54
- data/examples/api-samples/views/sample18.haml +143 -143
- data/examples/api-samples/views/sample19.haml +92 -92
- data/examples/api-samples/views/sample20.haml +54 -54
- data/examples/api-samples/views/sample21.haml +123 -123
- data/examples/api-samples/views/sample22.haml +106 -106
- data/examples/api-samples/views/sample25.haml +101 -101
- data/examples/api-samples/views/sample31.haml +2 -2
- data/examples/api-samples/web.rb +20 -20
- data/examples/viewer/Gemfile +5 -5
- data/examples/viewer/app.rb +52 -52
- data/groupdocs.gemspec +31 -31
- data/lib/groupdocs.rb +62 -62
- data/lib/groupdocs/api.rb +6 -6
- data/lib/groupdocs/api/entity.rb +112 -112
- data/lib/groupdocs/api/helpers.rb +11 -11
- data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
- data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
- data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
- data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
- data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
- data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
- data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
- data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
- data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
- data/lib/groupdocs/api/request.rb +91 -91
- data/lib/groupdocs/datasource.rb +249 -249
- data/lib/groupdocs/datasource/field.rb +39 -39
- data/lib/groupdocs/document.rb +1550 -1550
- data/lib/groupdocs/document/annotation.rb +421 -421
- data/lib/groupdocs/document/annotation/reply.rb +173 -173
- data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
- data/lib/groupdocs/document/change.rb +56 -56
- data/lib/groupdocs/document/field.rb +53 -53
- data/lib/groupdocs/document/metadata.rb +32 -32
- data/lib/groupdocs/document/rectangle.rb +18 -18
- data/lib/groupdocs/document/view.rb +36 -36
- data/lib/groupdocs/errors.rb +8 -8
- data/lib/groupdocs/job.rb +468 -468
- data/lib/groupdocs/questionnaire.rb +530 -530
- data/lib/groupdocs/questionnaire/collector.rb +335 -335
- data/lib/groupdocs/questionnaire/execution.rb +181 -181
- data/lib/groupdocs/questionnaire/page.rb +43 -43
- data/lib/groupdocs/questionnaire/question.rb +108 -108
- data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
- data/lib/groupdocs/signature.rb +380 -380
- data/lib/groupdocs/signature/contact.rb +181 -181
- data/lib/groupdocs/signature/envelope.rb +747 -747
- data/lib/groupdocs/signature/envelope/log.rb +20 -20
- data/lib/groupdocs/signature/field.rb +286 -286
- data/lib/groupdocs/signature/field/location.rb +71 -71
- data/lib/groupdocs/signature/form.rb +804 -804
- data/lib/groupdocs/signature/list.rb +92 -92
- data/lib/groupdocs/signature/recipient.rb +79 -79
- data/lib/groupdocs/signature/role.rb +54 -54
- data/lib/groupdocs/signature/shared.rb +6 -6
- data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
- data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
- data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
- data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
- data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
- data/lib/groupdocs/signature/template.rb +124 -124
- data/lib/groupdocs/storage.rb +44 -44
- data/lib/groupdocs/storage/file.rb +432 -432
- data/lib/groupdocs/storage/folder.rb +288 -288
- data/lib/groupdocs/storage/package.rb +48 -48
- data/lib/groupdocs/storage/provider.rb +32 -32
- data/lib/groupdocs/subscription.rb +323 -323
- data/lib/groupdocs/subscription/limit.rb +20 -20
- data/lib/groupdocs/user.rb +955 -930
- data/lib/groupdocs/version.rb +3 -3
- data/spec/groupdocs/api/entity_spec.rb +55 -55
- data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
- data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
- data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
- data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
- data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
- data/spec/groupdocs/api/request_spec.rb +112 -112
- data/spec/groupdocs/datasource/field_spec.rb +29 -29
- data/spec/groupdocs/datasource_spec.rb +145 -145
- data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
- data/spec/groupdocs/document/annotation_spec.rb +234 -234
- data/spec/groupdocs/document/change_spec.rb +39 -39
- data/spec/groupdocs/document/field_spec.rb +28 -28
- data/spec/groupdocs/document/metadata_spec.rb +21 -21
- data/spec/groupdocs/document/rectangle_spec.rb +14 -14
- data/spec/groupdocs/document/view_spec.rb +33 -33
- data/spec/groupdocs/document_spec.rb +859 -859
- data/spec/groupdocs/errors_spec.rb +7 -7
- data/spec/groupdocs/job_spec.rb +323 -323
- data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
- data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
- data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
- data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
- data/spec/groupdocs/questionnaire_spec.rb +295 -295
- data/spec/groupdocs/signature/contact_spec.rb +142 -142
- data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
- data/spec/groupdocs/signature/envelope_spec.rb +384 -384
- data/spec/groupdocs/signature/field/location_spec.rb +40 -40
- data/spec/groupdocs/signature/field_spec.rb +235 -235
- data/spec/groupdocs/signature/form_spec.rb +205 -205
- data/spec/groupdocs/signature/list_spec.rb +87 -87
- data/spec/groupdocs/signature/recipient_spec.rb +26 -26
- data/spec/groupdocs/signature/role_spec.rb +47 -47
- data/spec/groupdocs/signature/template_spec.rb +80 -80
- data/spec/groupdocs/signature_spec.rb +194 -194
- data/spec/groupdocs/storage/file_spec.rb +303 -303
- data/spec/groupdocs/storage/folder_spec.rb +270 -270
- data/spec/groupdocs/storage/package_spec.rb +38 -38
- data/spec/groupdocs/storage/provider_spec.rb +21 -21
- data/spec/groupdocs/storage_spec.rb +27 -27
- data/spec/groupdocs/subscription/limit_spec.rb +16 -16
- data/spec/groupdocs/subscription_spec.rb +74 -74
- data/spec/groupdocs/user_spec.rb +257 -257
- data/spec/groupdocs_spec.rb +63 -63
- data/spec/spec_helper.rb +73 -73
- data/spec/support/json/annotation_access_set.json +11 -11
- data/spec/support/json/annotation_collaborators_get.json +16 -16
- data/spec/support/json/annotation_collaborators_set.json +16 -16
- data/spec/support/json/annotation_create.json +12 -12
- data/spec/support/json/annotation_list.json +32 -32
- data/spec/support/json/annotation_marker_move.json +10 -10
- data/spec/support/json/annotation_move.json +8 -8
- data/spec/support/json/annotation_remove.json +9 -9
- data/spec/support/json/annotation_replies_create.json +9 -9
- data/spec/support/json/annotation_replies_get.json +25 -25
- data/spec/support/json/annotation_reviewers_get.json +18 -18
- data/spec/support/json/comparison_changes.json +46 -46
- data/spec/support/json/comparison_compare.json +8 -8
- data/spec/support/json/comparison_document.json +10 -10
- data/spec/support/json/contact_add.json +12 -12
- data/spec/support/json/contacts_get.json +19 -19
- data/spec/support/json/contacts_import.json +8 -8
- data/spec/support/json/datasource_add.json +8 -8
- data/spec/support/json/datasource_get.json +22 -22
- data/spec/support/json/datasource_remove.json +8 -8
- data/spec/support/json/datasource_update.json +8 -8
- data/spec/support/json/delete_account.json +9 -9
- data/spec/support/json/document_access_info_get.json +14 -14
- data/spec/support/json/document_convert.json +8 -8
- data/spec/support/json/document_datasource.json +10 -10
- data/spec/support/json/document_fields.json +34 -34
- data/spec/support/json/document_formats.json +8 -8
- data/spec/support/json/document_metadata.json +15 -15
- data/spec/support/json/document_page_images_get.json +20 -20
- data/spec/support/json/document_questionnaire_create.json +9 -9
- data/spec/support/json/document_questionnaires.json +23 -23
- data/spec/support/json/document_sharers_remove.json +8 -8
- data/spec/support/json/document_sharers_set.json +16 -16
- data/spec/support/json/document_thumbnails.json +24 -24
- data/spec/support/json/document_views.json +32 -32
- data/spec/support/json/envelope_get.json +46 -46
- data/spec/support/json/envelope_logs.json +16 -16
- data/spec/support/json/envelope_recipient_add.json +26 -26
- data/spec/support/json/envelopes_all.json +48 -48
- data/spec/support/json/envelopes_resources.json +31 -31
- data/spec/support/json/file_compress.json +8 -8
- data/spec/support/json/file_copy.json +14 -14
- data/spec/support/json/file_delete.json +5 -5
- data/spec/support/json/file_move.json +14 -14
- data/spec/support/json/file_upload.json +8 -8
- data/spec/support/json/folder_create.json +8 -8
- data/spec/support/json/folder_delete.json +5 -5
- data/spec/support/json/folder_list.json +22 -22
- data/spec/support/json/folder_move.json +8 -8
- data/spec/support/json/folder_sharers_get.json +16 -16
- data/spec/support/json/folder_sharers_remove.json +8 -8
- data/spec/support/json/folder_sharers_set.json +16 -16
- data/spec/support/json/form_get.json +21 -21
- data/spec/support/json/forms_all.json +23 -23
- data/spec/support/json/job_add_url.json +8 -8
- data/spec/support/json/job_create.json +8 -8
- data/spec/support/json/job_documents.json +40 -40
- data/spec/support/json/job_file_add.json +8 -8
- data/spec/support/json/job_get.json +30 -30
- data/spec/support/json/job_update.json +7 -7
- data/spec/support/json/jobs_get.json +58 -58
- data/spec/support/json/list_add.json +12 -12
- data/spec/support/json/lists_get.json +19 -19
- data/spec/support/json/package_create.json +7 -7
- data/spec/support/json/questionnaire_collector.json +17 -17
- data/spec/support/json/questionnaire_collectors.json +38 -38
- data/spec/support/json/questionnaire_collectors_add.json +10 -10
- data/spec/support/json/questionnaire_create.json +10 -10
- data/spec/support/json/questionnaire_datasources.json +26 -26
- data/spec/support/json/questionnaire_execution_add.json +9 -9
- data/spec/support/json/questionnaire_execution_status_set.json +8 -8
- data/spec/support/json/questionnaire_execution_update.json +8 -8
- data/spec/support/json/questionnaire_executions.json +28 -28
- data/spec/support/json/questionnaire_get.json +17 -17
- data/spec/support/json/questionnaire_remove.json +8 -8
- data/spec/support/json/questionnaire_update.json +8 -8
- data/spec/support/json/questionnaires_get.json +40 -40
- data/spec/support/json/sign_documents.json +16 -16
- data/spec/support/json/signature_create.json +12 -12
- data/spec/support/json/signature_field_add.json +25 -25
- data/spec/support/json/signature_fields_get.json +27 -27
- data/spec/support/json/signature_roles_get.json +17 -17
- data/spec/support/json/signatures_get.json +19 -19
- data/spec/support/json/storage_info.json +10 -10
- data/spec/support/json/subscription_plan_get.json +9 -9
- data/spec/support/json/subscription_plans_get.json +17 -17
- data/spec/support/json/template_get.json +35 -35
- data/spec/support/json/template_get_documents.json +15 -15
- data/spec/support/json/template_get_recipients.json +20 -20
- data/spec/support/json/templates_all.json +37 -37
- data/spec/support/json/templates_get.json +21 -21
- data/spec/support/json/update_account.json +10 -10
- data/spec/support/json/user_area.json +67 -67
- data/spec/support/json/user_embed_key.json +38 -38
- data/spec/support/json/user_get_embed_key.json +67 -67
- data/spec/support/json/user_login.json +67 -67
- data/spec/support/json/user_profile_get.json +24 -24
- data/spec/support/json/user_providers.json +31 -31
- data/spec/support/json/user_roles.json +25 -25
- data/spec/support/json/user_users_get.json +27 -27
- data/spec/support/shared_examples/api/entity.rb +39 -39
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
- data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
- data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
- metadata +35 -55
@@ -1,288 +1,288 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
module Storage
|
3
|
-
class Folder < Api::Entity
|
4
|
-
|
5
|
-
include Api::Helpers::AccessMode
|
6
|
-
include Api::Helpers::Path
|
7
|
-
|
8
|
-
#
|
9
|
-
# Creates folder on server.
|
10
|
-
#
|
11
|
-
# @param [String] path Path of folder to create starting with "/"
|
12
|
-
# @param [Hash] access Access credentials
|
13
|
-
# @option access [String] :client_id
|
14
|
-
# @option access [String] :private_key
|
15
|
-
# @return [GroupDocs::Storage::Folder] Created folder
|
16
|
-
#
|
17
|
-
def self.create!(path, access = {})
|
18
|
-
path = prepare_path(path)
|
19
|
-
|
20
|
-
json = Api::Request.new do |request|
|
21
|
-
request[:access] = access
|
22
|
-
request[:method] = :POST
|
23
|
-
request[:path] = "/storage/{{client_id}}/paths/#{path}"
|
24
|
-
end.execute!
|
25
|
-
|
26
|
-
Storage::Folder.new(json)
|
27
|
-
end
|
28
|
-
|
29
|
-
#
|
30
|
-
# Returns a list of all directories and files in the path.
|
31
|
-
#
|
32
|
-
# @param [String] path Path of directory to list starting from root ('/')
|
33
|
-
# @param [Hash] options Hash of options
|
34
|
-
# @option options [Integer] :page Page to start with
|
35
|
-
# @option options [Integer] :count How many items to list
|
36
|
-
# @option options [String] :order_by Field name to sort by
|
37
|
-
# @option options [Boolean] :order_asc Set to true to return in ascending order
|
38
|
-
# @param [Hash] access Access credentials
|
39
|
-
# @option access [String] :client_id
|
40
|
-
# @option access [String] :private_key
|
41
|
-
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
42
|
-
#
|
43
|
-
def self.list!(path = '', options = {}, access = {})
|
44
|
-
path = prepare_path(path)
|
45
|
-
new(:path => path).list!(options, access)
|
46
|
-
end
|
47
|
-
|
48
|
-
# @attr [Integer] id
|
49
|
-
attr_accessor :id
|
50
|
-
# @attr [Integer] size
|
51
|
-
attr_accessor :size
|
52
|
-
# @attr [Integer] folder_count
|
53
|
-
attr_accessor :folder_count
|
54
|
-
# @attr [Integer] file_count
|
55
|
-
attr_accessor :file_count
|
56
|
-
# @attr [Time] created_on
|
57
|
-
attr_accessor :created_on
|
58
|
-
# @attr [Time] modified_on
|
59
|
-
attr_accessor :modified_on
|
60
|
-
# @attr [String] url
|
61
|
-
attr_accessor :url
|
62
|
-
# @attr [String] name
|
63
|
-
attr_accessor :name
|
64
|
-
# @attr [String] path
|
65
|
-
attr_accessor :path
|
66
|
-
# @attr [Integer] version
|
67
|
-
attr_accessor :version
|
68
|
-
# @attr [Integer] type
|
69
|
-
attr_accessor :type
|
70
|
-
# @attr [Symbol] access
|
71
|
-
attr_accessor :access
|
72
|
-
|
73
|
-
#
|
74
|
-
# Converts timestamp which is return by API server to Time object.
|
75
|
-
#
|
76
|
-
# @return [Time]
|
77
|
-
#
|
78
|
-
def created_on
|
79
|
-
Time.at(@created_on / 1000)
|
80
|
-
end
|
81
|
-
|
82
|
-
#
|
83
|
-
# Converts timestamp which is return by API server to Time object.
|
84
|
-
#
|
85
|
-
# @return [Time]
|
86
|
-
#
|
87
|
-
def modified_on
|
88
|
-
Time.at(@modified_on / 1000)
|
89
|
-
end
|
90
|
-
|
91
|
-
#
|
92
|
-
# Converts access mode to human-readable format.
|
93
|
-
#
|
94
|
-
# @return [Symbol]
|
95
|
-
#
|
96
|
-
def access
|
97
|
-
parse_access_mode(@access)
|
98
|
-
end
|
99
|
-
|
100
|
-
#
|
101
|
-
# Returns an array of files and folders.
|
102
|
-
#
|
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
|
108
|
-
# @option options [String] :filter Filter by name
|
109
|
-
# @option options [Array<Symbol>] :file_types Array of file types to return
|
110
|
-
# @option options [Boolean] :extended Set to true to return extended information
|
111
|
-
# @param [Hash] access Access credentials
|
112
|
-
# @option access [String] :client_id
|
113
|
-
# @option access [String] :private_key
|
114
|
-
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
115
|
-
#
|
116
|
-
def list!(options = {}, access = {})
|
117
|
-
if options[:order_by]
|
118
|
-
options[:order_by] = options[:order_by].camelize
|
119
|
-
end
|
120
|
-
|
121
|
-
full_path = prepare_path("#{path}/#{name}")
|
122
|
-
|
123
|
-
api = Api::Request.new do |request|
|
124
|
-
request[:access] = access
|
125
|
-
request[:method] = :GET
|
126
|
-
request[:path] = "/storage/{{client_id}}/folders/#{full_path}"
|
127
|
-
end
|
128
|
-
api.add_params(options)
|
129
|
-
json = api.execute!
|
130
|
-
|
131
|
-
folders = json[:folders].map do |folder|
|
132
|
-
folder.merge!(:path => full_path)
|
133
|
-
Storage::Folder.new(folder)
|
134
|
-
end
|
135
|
-
files = json[:files].map do |file|
|
136
|
-
file.merge!(:path => full_path)
|
137
|
-
Storage::File.new(file)
|
138
|
-
end
|
139
|
-
|
140
|
-
folders + files
|
141
|
-
end
|
142
|
-
|
143
|
-
#
|
144
|
-
# Moves folder contents to given path.
|
145
|
-
#
|
146
|
-
# @param [String] destination Destination to move contents to
|
147
|
-
# @param [Hash] access Access credentials
|
148
|
-
# @option access [String] :client_id
|
149
|
-
# @option access [String] :private_key
|
150
|
-
# @return [String] Moved to folder path
|
151
|
-
#
|
152
|
-
def move!(destination, access = {})
|
153
|
-
src_path = prepare_path(path)
|
154
|
-
dst_path = prepare_path("#{destination}/#{name}")
|
155
|
-
|
156
|
-
Api::Request.new do |request|
|
157
|
-
request[:access] = access
|
158
|
-
request[:method] = :PUT
|
159
|
-
request[:headers] = { :'Groupdocs-Move' => src_path }
|
160
|
-
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
161
|
-
end.execute!
|
162
|
-
|
163
|
-
dst_path
|
164
|
-
end
|
165
|
-
|
166
|
-
#
|
167
|
-
# Copies folder contents to given path.
|
168
|
-
#
|
169
|
-
# @param [String] destination_path Destination to copy contents to
|
170
|
-
# @param [Hash] access Access credentials
|
171
|
-
# @option access [String] :client_id
|
172
|
-
# @option access [String] :private_key
|
173
|
-
# @return [String] Copied to folder path
|
174
|
-
#
|
175
|
-
def copy!(destination, access = {})
|
176
|
-
src_path = prepare_path(path)
|
177
|
-
dst_path = prepare_path("#{destination}/#{name}")
|
178
|
-
|
179
|
-
Api::Request.new do |request|
|
180
|
-
request[:access] = access
|
181
|
-
request[:method] = :PUT
|
182
|
-
request[:headers] = { :'Groupdocs-Copy' => src_path }
|
183
|
-
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
184
|
-
end.execute!
|
185
|
-
|
186
|
-
dst_path
|
187
|
-
end
|
188
|
-
|
189
|
-
#
|
190
|
-
# Creates folder on server.
|
191
|
-
#
|
192
|
-
# Note that it doesn't update self and instead returns new instance.
|
193
|
-
#
|
194
|
-
# @example
|
195
|
-
# folder = GroupDocs::Storage::Folder.new(name: 'Folder')
|
196
|
-
# folder = folder.create!
|
197
|
-
#
|
198
|
-
# @param [Hash] access Access credentials
|
199
|
-
# @option access [String] :client_id
|
200
|
-
# @option access [String] :private_key
|
201
|
-
# @return [GroupDocs::Storage::Folder] Created folder
|
202
|
-
#
|
203
|
-
def create!(access = {})
|
204
|
-
self.class.create! prepare_path("#{path}/#{name}"), access
|
205
|
-
end
|
206
|
-
|
207
|
-
#
|
208
|
-
# Deletes folder from server.
|
209
|
-
#
|
210
|
-
# @param [Hash] access Access credentials
|
211
|
-
# @option access [String] :client_id
|
212
|
-
# @option access [String] :private_key
|
213
|
-
#
|
214
|
-
def delete!(access = {})
|
215
|
-
Api::Request.new do |request|
|
216
|
-
request[:access] = access
|
217
|
-
request[:method] = :DELETE
|
218
|
-
request[:path] = "/storage/{{client_id}}/folders/#{prepare_path("#{path}/#{name}")}"
|
219
|
-
end.execute!
|
220
|
-
end
|
221
|
-
|
222
|
-
#
|
223
|
-
# Returns an array of users a folder is shared with.
|
224
|
-
#
|
225
|
-
# @param [Hash] access Access credentials
|
226
|
-
# @option access [String] :client_id
|
227
|
-
# @option access [String] :private_key
|
228
|
-
# @return [Array<GroupDocs::User>]
|
229
|
-
#
|
230
|
-
def sharers!(access = {})
|
231
|
-
json = Api::Request.new do |request|
|
232
|
-
request[:access] = access
|
233
|
-
request[:method] = :GET
|
234
|
-
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
235
|
-
end.execute!
|
236
|
-
|
237
|
-
json[:shared_users].map do |user|
|
238
|
-
User.new(user)
|
239
|
-
end
|
240
|
-
end
|
241
|
-
|
242
|
-
#
|
243
|
-
# Sets folder sharers to given emails.
|
244
|
-
#
|
245
|
-
# If empty array or nil passed, clears sharers.
|
246
|
-
#
|
247
|
-
# @param [Array] emails List of email addresses to share with
|
248
|
-
# @param [Hash] access Access credentials
|
249
|
-
# @option access [String] :client_id
|
250
|
-
# @option access [String] :private_key
|
251
|
-
# @return [Array<GroupDocs::User>]
|
252
|
-
#
|
253
|
-
def sharers_set!(emails, access = {})
|
254
|
-
if emails.nil? || emails.empty?
|
255
|
-
sharers_clear!(access)
|
256
|
-
else
|
257
|
-
json = Api::Request.new do |request|
|
258
|
-
request[:access] = access
|
259
|
-
request[:method] = :PUT
|
260
|
-
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
261
|
-
request[:request_body] = emails
|
262
|
-
end.execute!
|
263
|
-
|
264
|
-
json[:shared_users].map do |user|
|
265
|
-
User.new(user)
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
#
|
271
|
-
# Clears sharers list.
|
272
|
-
#
|
273
|
-
# @param [Hash] access Access credentials
|
274
|
-
# @option access [String] :client_id
|
275
|
-
# @option access [String] :private_key
|
276
|
-
# @return nil
|
277
|
-
#
|
278
|
-
def sharers_clear!(access = {})
|
279
|
-
Api::Request.new do |request|
|
280
|
-
request[:access] = access
|
281
|
-
request[:method] = :DELETE
|
282
|
-
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
283
|
-
end.execute![:shared_users]
|
284
|
-
end
|
285
|
-
|
286
|
-
end # Folder
|
287
|
-
end # Storage
|
288
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
module Storage
|
3
|
+
class Folder < Api::Entity
|
4
|
+
|
5
|
+
include Api::Helpers::AccessMode
|
6
|
+
include Api::Helpers::Path
|
7
|
+
|
8
|
+
#
|
9
|
+
# Creates folder on server.
|
10
|
+
#
|
11
|
+
# @param [String] path Path of folder to create starting with "/"
|
12
|
+
# @param [Hash] access Access credentials
|
13
|
+
# @option access [String] :client_id
|
14
|
+
# @option access [String] :private_key
|
15
|
+
# @return [GroupDocs::Storage::Folder] Created folder
|
16
|
+
#
|
17
|
+
def self.create!(path, access = {})
|
18
|
+
path = prepare_path(path)
|
19
|
+
|
20
|
+
json = Api::Request.new do |request|
|
21
|
+
request[:access] = access
|
22
|
+
request[:method] = :POST
|
23
|
+
request[:path] = "/storage/{{client_id}}/paths/#{path}"
|
24
|
+
end.execute!
|
25
|
+
|
26
|
+
Storage::Folder.new(json)
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
# Returns a list of all directories and files in the path.
|
31
|
+
#
|
32
|
+
# @param [String] path Path of directory to list starting from root ('/')
|
33
|
+
# @param [Hash] options Hash of options
|
34
|
+
# @option options [Integer] :page Page to start with
|
35
|
+
# @option options [Integer] :count How many items to list
|
36
|
+
# @option options [String] :order_by Field name to sort by
|
37
|
+
# @option options [Boolean] :order_asc Set to true to return in ascending order
|
38
|
+
# @param [Hash] access Access credentials
|
39
|
+
# @option access [String] :client_id
|
40
|
+
# @option access [String] :private_key
|
41
|
+
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
42
|
+
#
|
43
|
+
def self.list!(path = '', options = {}, access = {})
|
44
|
+
path = prepare_path(path)
|
45
|
+
new(:path => path).list!(options, access)
|
46
|
+
end
|
47
|
+
|
48
|
+
# @attr [Integer] id
|
49
|
+
attr_accessor :id
|
50
|
+
# @attr [Integer] size
|
51
|
+
attr_accessor :size
|
52
|
+
# @attr [Integer] folder_count
|
53
|
+
attr_accessor :folder_count
|
54
|
+
# @attr [Integer] file_count
|
55
|
+
attr_accessor :file_count
|
56
|
+
# @attr [Time] created_on
|
57
|
+
attr_accessor :created_on
|
58
|
+
# @attr [Time] modified_on
|
59
|
+
attr_accessor :modified_on
|
60
|
+
# @attr [String] url
|
61
|
+
attr_accessor :url
|
62
|
+
# @attr [String] name
|
63
|
+
attr_accessor :name
|
64
|
+
# @attr [String] path
|
65
|
+
attr_accessor :path
|
66
|
+
# @attr [Integer] version
|
67
|
+
attr_accessor :version
|
68
|
+
# @attr [Integer] type
|
69
|
+
attr_accessor :type
|
70
|
+
# @attr [Symbol] access
|
71
|
+
attr_accessor :access
|
72
|
+
|
73
|
+
#
|
74
|
+
# Converts timestamp which is return by API server to Time object.
|
75
|
+
#
|
76
|
+
# @return [Time]
|
77
|
+
#
|
78
|
+
def created_on
|
79
|
+
Time.at(@created_on / 1000)
|
80
|
+
end
|
81
|
+
|
82
|
+
#
|
83
|
+
# Converts timestamp which is return by API server to Time object.
|
84
|
+
#
|
85
|
+
# @return [Time]
|
86
|
+
#
|
87
|
+
def modified_on
|
88
|
+
Time.at(@modified_on / 1000)
|
89
|
+
end
|
90
|
+
|
91
|
+
#
|
92
|
+
# Converts access mode to human-readable format.
|
93
|
+
#
|
94
|
+
# @return [Symbol]
|
95
|
+
#
|
96
|
+
def access
|
97
|
+
parse_access_mode(@access)
|
98
|
+
end
|
99
|
+
|
100
|
+
#
|
101
|
+
# Returns an array of files and folders.
|
102
|
+
#
|
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
|
108
|
+
# @option options [String] :filter Filter by name
|
109
|
+
# @option options [Array<Symbol>] :file_types Array of file types to return
|
110
|
+
# @option options [Boolean] :extended Set to true to return extended information
|
111
|
+
# @param [Hash] access Access credentials
|
112
|
+
# @option access [String] :client_id
|
113
|
+
# @option access [String] :private_key
|
114
|
+
# @return [Array<GroupDocs::Storage::Folder, GroupDocs::Storage::File>]
|
115
|
+
#
|
116
|
+
def list!(options = {}, access = {})
|
117
|
+
if options[:order_by]
|
118
|
+
options[:order_by] = options[:order_by].camelize
|
119
|
+
end
|
120
|
+
|
121
|
+
full_path = prepare_path("#{path}/#{name}")
|
122
|
+
|
123
|
+
api = Api::Request.new do |request|
|
124
|
+
request[:access] = access
|
125
|
+
request[:method] = :GET
|
126
|
+
request[:path] = "/storage/{{client_id}}/folders/#{full_path}"
|
127
|
+
end
|
128
|
+
api.add_params(options)
|
129
|
+
json = api.execute!
|
130
|
+
|
131
|
+
folders = json[:folders].map do |folder|
|
132
|
+
folder.merge!(:path => full_path)
|
133
|
+
Storage::Folder.new(folder)
|
134
|
+
end
|
135
|
+
files = json[:files].map do |file|
|
136
|
+
file.merge!(:path => full_path)
|
137
|
+
Storage::File.new(file)
|
138
|
+
end
|
139
|
+
|
140
|
+
folders + files
|
141
|
+
end
|
142
|
+
|
143
|
+
#
|
144
|
+
# Moves folder contents to given path.
|
145
|
+
#
|
146
|
+
# @param [String] destination Destination to move contents to
|
147
|
+
# @param [Hash] access Access credentials
|
148
|
+
# @option access [String] :client_id
|
149
|
+
# @option access [String] :private_key
|
150
|
+
# @return [String] Moved to folder path
|
151
|
+
#
|
152
|
+
def move!(destination, access = {})
|
153
|
+
src_path = prepare_path(path)
|
154
|
+
dst_path = prepare_path("#{destination}/#{name}")
|
155
|
+
|
156
|
+
Api::Request.new do |request|
|
157
|
+
request[:access] = access
|
158
|
+
request[:method] = :PUT
|
159
|
+
request[:headers] = { :'Groupdocs-Move' => src_path }
|
160
|
+
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
161
|
+
end.execute!
|
162
|
+
|
163
|
+
dst_path
|
164
|
+
end
|
165
|
+
|
166
|
+
#
|
167
|
+
# Copies folder contents to given path.
|
168
|
+
#
|
169
|
+
# @param [String] destination_path Destination to copy contents to
|
170
|
+
# @param [Hash] access Access credentials
|
171
|
+
# @option access [String] :client_id
|
172
|
+
# @option access [String] :private_key
|
173
|
+
# @return [String] Copied to folder path
|
174
|
+
#
|
175
|
+
def copy!(destination, access = {})
|
176
|
+
src_path = prepare_path(path)
|
177
|
+
dst_path = prepare_path("#{destination}/#{name}")
|
178
|
+
|
179
|
+
Api::Request.new do |request|
|
180
|
+
request[:access] = access
|
181
|
+
request[:method] = :PUT
|
182
|
+
request[:headers] = { :'Groupdocs-Copy' => src_path }
|
183
|
+
request[:path] = "/storage/{{client_id}}/folders/#{dst_path}"
|
184
|
+
end.execute!
|
185
|
+
|
186
|
+
dst_path
|
187
|
+
end
|
188
|
+
|
189
|
+
#
|
190
|
+
# Creates folder on server.
|
191
|
+
#
|
192
|
+
# Note that it doesn't update self and instead returns new instance.
|
193
|
+
#
|
194
|
+
# @example
|
195
|
+
# folder = GroupDocs::Storage::Folder.new(name: 'Folder')
|
196
|
+
# folder = folder.create!
|
197
|
+
#
|
198
|
+
# @param [Hash] access Access credentials
|
199
|
+
# @option access [String] :client_id
|
200
|
+
# @option access [String] :private_key
|
201
|
+
# @return [GroupDocs::Storage::Folder] Created folder
|
202
|
+
#
|
203
|
+
def create!(access = {})
|
204
|
+
self.class.create! prepare_path("#{path}/#{name}"), access
|
205
|
+
end
|
206
|
+
|
207
|
+
#
|
208
|
+
# Deletes folder from server.
|
209
|
+
#
|
210
|
+
# @param [Hash] access Access credentials
|
211
|
+
# @option access [String] :client_id
|
212
|
+
# @option access [String] :private_key
|
213
|
+
#
|
214
|
+
def delete!(access = {})
|
215
|
+
Api::Request.new do |request|
|
216
|
+
request[:access] = access
|
217
|
+
request[:method] = :DELETE
|
218
|
+
request[:path] = "/storage/{{client_id}}/folders/#{prepare_path("#{path}/#{name}")}"
|
219
|
+
end.execute!
|
220
|
+
end
|
221
|
+
|
222
|
+
#
|
223
|
+
# Returns an array of users a folder is shared with.
|
224
|
+
#
|
225
|
+
# @param [Hash] access Access credentials
|
226
|
+
# @option access [String] :client_id
|
227
|
+
# @option access [String] :private_key
|
228
|
+
# @return [Array<GroupDocs::User>]
|
229
|
+
#
|
230
|
+
def sharers!(access = {})
|
231
|
+
json = Api::Request.new do |request|
|
232
|
+
request[:access] = access
|
233
|
+
request[:method] = :GET
|
234
|
+
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
235
|
+
end.execute!
|
236
|
+
|
237
|
+
json[:shared_users].map do |user|
|
238
|
+
User.new(user)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
#
|
243
|
+
# Sets folder sharers to given emails.
|
244
|
+
#
|
245
|
+
# If empty array or nil passed, clears sharers.
|
246
|
+
#
|
247
|
+
# @param [Array] emails List of email addresses to share with
|
248
|
+
# @param [Hash] access Access credentials
|
249
|
+
# @option access [String] :client_id
|
250
|
+
# @option access [String] :private_key
|
251
|
+
# @return [Array<GroupDocs::User>]
|
252
|
+
#
|
253
|
+
def sharers_set!(emails, access = {})
|
254
|
+
if emails.nil? || emails.empty?
|
255
|
+
sharers_clear!(access)
|
256
|
+
else
|
257
|
+
json = Api::Request.new do |request|
|
258
|
+
request[:access] = access
|
259
|
+
request[:method] = :PUT
|
260
|
+
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
261
|
+
request[:request_body] = emails
|
262
|
+
end.execute!
|
263
|
+
|
264
|
+
json[:shared_users].map do |user|
|
265
|
+
User.new(user)
|
266
|
+
end
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
#
|
271
|
+
# Clears sharers list.
|
272
|
+
#
|
273
|
+
# @param [Hash] access Access credentials
|
274
|
+
# @option access [String] :client_id
|
275
|
+
# @option access [String] :private_key
|
276
|
+
# @return nil
|
277
|
+
#
|
278
|
+
def sharers_clear!(access = {})
|
279
|
+
Api::Request.new do |request|
|
280
|
+
request[:access] = access
|
281
|
+
request[:method] = :DELETE
|
282
|
+
request[:path] = "/doc/{{client_id}}/folders/#{id}/sharers"
|
283
|
+
end.execute![:shared_users]
|
284
|
+
end
|
285
|
+
|
286
|
+
end # Folder
|
287
|
+
end # Storage
|
288
|
+
end # GroupDocs
|