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,91 +1,91 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
module Api
|
3
|
-
class Request
|
4
|
-
|
5
|
-
include Api::Helpers::Credentials
|
6
|
-
include Api::Helpers::URL
|
7
|
-
include Api::Helpers::REST
|
8
|
-
|
9
|
-
# @attr_reader [RestClient::Resource] resource Entry point for all API requests
|
10
|
-
attr_reader :resource
|
11
|
-
# @attr [String] response Response from server in JSON format
|
12
|
-
attr_accessor :response
|
13
|
-
# @attr [Hash] options Hash of options
|
14
|
-
attr_accessor :options
|
15
|
-
# @attr [Hash] access Hash of access credentials
|
16
|
-
attr_accessor :access
|
17
|
-
|
18
|
-
#
|
19
|
-
# Creates new API request.
|
20
|
-
#
|
21
|
-
# @example
|
22
|
-
# api = GroupDocs::Api::Request.new do |request|
|
23
|
-
# request[:method] = :POST
|
24
|
-
# request[:path] = "/storage/{{client_id}}/info"
|
25
|
-
# end
|
26
|
-
#
|
27
|
-
# @param [Hash] options
|
28
|
-
# @option options [Symbol, String] :method HTTP method. One of :GET, :DOWNLOAD, :POST, :PUT or :DELETE.
|
29
|
-
# @option options [String] :path Path to send request to
|
30
|
-
# @option options [Hash] :headers Additional HTTP headers
|
31
|
-
# @option options [Hash] :access Access credentials hash
|
32
|
-
# @option options [Hash, String, Array, File] :request_body payload
|
33
|
-
# @option options [Boolean] :plain Send payload as plain text (i.e. do not convert to JSON). Defaults to false.
|
34
|
-
# @option options [Boolean] :sign Should URL be signed. Defaults to true.
|
35
|
-
#
|
36
|
-
# @yieldparam [Hash] options
|
37
|
-
#
|
38
|
-
def initialize(options = {}, &blk)
|
39
|
-
@options = options
|
40
|
-
yield @options if block_given?
|
41
|
-
@options[:access] ||= {}
|
42
|
-
@options[:sign] = true if @options[:sign].nil?
|
43
|
-
@resource = RestClient::Resource.new(GroupDocs.api_server)
|
44
|
-
end
|
45
|
-
|
46
|
-
#
|
47
|
-
# Prepares, signs and returns absolute URL.
|
48
|
-
#
|
49
|
-
# It performs the following actions step by step:
|
50
|
-
# * Parses path (i.e. replaces client ID)
|
51
|
-
# * URL encodes path
|
52
|
-
# * Signs URL
|
53
|
-
#
|
54
|
-
# @return [String]
|
55
|
-
#
|
56
|
-
def prepare_and_sign_url
|
57
|
-
unless @signed
|
58
|
-
# the order is important here and if client_id is replaced after path
|
59
|
-
# is encoded, there might be bad requests
|
60
|
-
replace_client_id if @options[:sign]
|
61
|
-
url_encode_path
|
62
|
-
sign_url if @options[:sign]
|
63
|
-
@signed = true
|
64
|
-
end
|
65
|
-
|
66
|
-
options[:path]
|
67
|
-
end
|
68
|
-
|
69
|
-
#
|
70
|
-
# Executes API request to server.
|
71
|
-
#
|
72
|
-
# It performs the following actions step by step:
|
73
|
-
# * Prepends path with version if it's set
|
74
|
-
# * Prepares and signs URL
|
75
|
-
# * Prepare request (add headers, converts payload to JSON, etc.)
|
76
|
-
# * Sends request to server
|
77
|
-
# * Parses response
|
78
|
-
#
|
79
|
-
# @return [Hash, String] Parsed response
|
80
|
-
#
|
81
|
-
def execute!
|
82
|
-
prepend_version
|
83
|
-
prepare_and_sign_url
|
84
|
-
prepare_request
|
85
|
-
send_request
|
86
|
-
parse_response
|
87
|
-
end
|
88
|
-
|
89
|
-
end # Request
|
90
|
-
end # Api
|
91
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
module Api
|
3
|
+
class Request
|
4
|
+
|
5
|
+
include Api::Helpers::Credentials
|
6
|
+
include Api::Helpers::URL
|
7
|
+
include Api::Helpers::REST
|
8
|
+
|
9
|
+
# @attr_reader [RestClient::Resource] resource Entry point for all API requests
|
10
|
+
attr_reader :resource
|
11
|
+
# @attr [String] response Response from server in JSON format
|
12
|
+
attr_accessor :response
|
13
|
+
# @attr [Hash] options Hash of options
|
14
|
+
attr_accessor :options
|
15
|
+
# @attr [Hash] access Hash of access credentials
|
16
|
+
attr_accessor :access
|
17
|
+
|
18
|
+
#
|
19
|
+
# Creates new API request.
|
20
|
+
#
|
21
|
+
# @example
|
22
|
+
# api = GroupDocs::Api::Request.new do |request|
|
23
|
+
# request[:method] = :POST
|
24
|
+
# request[:path] = "/storage/{{client_id}}/info"
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# @param [Hash] options
|
28
|
+
# @option options [Symbol, String] :method HTTP method. One of :GET, :DOWNLOAD, :POST, :PUT or :DELETE.
|
29
|
+
# @option options [String] :path Path to send request to
|
30
|
+
# @option options [Hash] :headers Additional HTTP headers
|
31
|
+
# @option options [Hash] :access Access credentials hash
|
32
|
+
# @option options [Hash, String, Array, File] :request_body payload
|
33
|
+
# @option options [Boolean] :plain Send payload as plain text (i.e. do not convert to JSON). Defaults to false.
|
34
|
+
# @option options [Boolean] :sign Should URL be signed. Defaults to true.
|
35
|
+
#
|
36
|
+
# @yieldparam [Hash] options
|
37
|
+
#
|
38
|
+
def initialize(options = {}, &blk)
|
39
|
+
@options = options
|
40
|
+
yield @options if block_given?
|
41
|
+
@options[:access] ||= {}
|
42
|
+
@options[:sign] = true if @options[:sign].nil?
|
43
|
+
@resource = RestClient::Resource.new(GroupDocs.api_server)
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Prepares, signs and returns absolute URL.
|
48
|
+
#
|
49
|
+
# It performs the following actions step by step:
|
50
|
+
# * Parses path (i.e. replaces client ID)
|
51
|
+
# * URL encodes path
|
52
|
+
# * Signs URL
|
53
|
+
#
|
54
|
+
# @return [String]
|
55
|
+
#
|
56
|
+
def prepare_and_sign_url
|
57
|
+
unless @signed
|
58
|
+
# the order is important here and if client_id is replaced after path
|
59
|
+
# is encoded, there might be bad requests
|
60
|
+
replace_client_id if @options[:sign]
|
61
|
+
url_encode_path
|
62
|
+
sign_url if @options[:sign]
|
63
|
+
@signed = true
|
64
|
+
end
|
65
|
+
|
66
|
+
options[:path]
|
67
|
+
end
|
68
|
+
|
69
|
+
#
|
70
|
+
# Executes API request to server.
|
71
|
+
#
|
72
|
+
# It performs the following actions step by step:
|
73
|
+
# * Prepends path with version if it's set
|
74
|
+
# * Prepares and signs URL
|
75
|
+
# * Prepare request (add headers, converts payload to JSON, etc.)
|
76
|
+
# * Sends request to server
|
77
|
+
# * Parses response
|
78
|
+
#
|
79
|
+
# @return [Hash, String] Parsed response
|
80
|
+
#
|
81
|
+
def execute!
|
82
|
+
prepend_version
|
83
|
+
prepare_and_sign_url
|
84
|
+
prepare_request
|
85
|
+
send_request
|
86
|
+
parse_response
|
87
|
+
end
|
88
|
+
|
89
|
+
end # Request
|
90
|
+
end # Api
|
91
|
+
end # GroupDocs
|
data/lib/groupdocs/datasource.rb
CHANGED
@@ -1,249 +1,249 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class DataSource < Api::Entity
|
3
|
-
|
4
|
-
require 'groupdocs/datasource/field'
|
5
|
-
|
6
|
-
#
|
7
|
-
# Returns datasource by given identifier.
|
8
|
-
#
|
9
|
-
# @param [Integer] id
|
10
|
-
# @param [Hash] options
|
11
|
-
# @option options [Array] :field Array of field names to be returned. All by default
|
12
|
-
# @param [Hash] access Access credentials
|
13
|
-
# @option access [String] :client_id
|
14
|
-
# @option access [String] :private_key
|
15
|
-
# @return [GroupDocs::DataSource, nil]
|
16
|
-
#
|
17
|
-
def self.get!(id, options = {}, access = {})
|
18
|
-
api = Api::Request.new do |request|
|
19
|
-
request[:access] = access
|
20
|
-
request[:method] = :GET
|
21
|
-
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
22
|
-
end
|
23
|
-
api.add_params(options)
|
24
|
-
json = api.execute!
|
25
|
-
|
26
|
-
DataSource.new(json[:datasource])
|
27
|
-
rescue RestClient::ResourceNotFound
|
28
|
-
nil
|
29
|
-
end
|
30
|
-
|
31
|
-
# @attr [Integer] id
|
32
|
-
attr_accessor :id
|
33
|
-
# @attr [String] descr
|
34
|
-
attr_accessor :descr
|
35
|
-
# @attr [Integer] questionnaire_id
|
36
|
-
attr_accessor :questionnaire_id
|
37
|
-
# @attr [Time] created_on
|
38
|
-
attr_accessor :created_on
|
39
|
-
# @attr [Time] modified_on
|
40
|
-
attr_accessor :modified_on
|
41
|
-
# @attr [Array<GroupDocs::DataSource::Field>] fields
|
42
|
-
attr_accessor :fields
|
43
|
-
|
44
|
-
# Human-readable accessors
|
45
|
-
alias_accessor :description, :descr
|
46
|
-
|
47
|
-
#
|
48
|
-
# Converts timestamp which is return by API server to Time object.
|
49
|
-
#
|
50
|
-
# @return [Time]
|
51
|
-
#
|
52
|
-
def created_on
|
53
|
-
Time.at(@created_on / 1000)
|
54
|
-
end
|
55
|
-
|
56
|
-
#
|
57
|
-
# Converts timestamp which is return by API server to Time object.
|
58
|
-
#
|
59
|
-
# @return [Time]
|
60
|
-
#
|
61
|
-
def modified_on
|
62
|
-
Time.at(@modified_on / 1000)
|
63
|
-
end
|
64
|
-
|
65
|
-
#
|
66
|
-
# Converts each field to GroupDocs::DataSource::Field object.
|
67
|
-
#
|
68
|
-
# @param [Array<GroupDocs::DataSource::Field, Hash>] fields
|
69
|
-
#
|
70
|
-
def fields=(fields)
|
71
|
-
if fields
|
72
|
-
@fields = fields.map do |field|
|
73
|
-
if field.is_a?(GroupDocs::DataSource::Field)
|
74
|
-
field
|
75
|
-
else
|
76
|
-
DataSource::Field.new(field)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
#
|
83
|
-
# Adds field to datasource.
|
84
|
-
#
|
85
|
-
# @param [GroupDocs::DataSource::Field] question
|
86
|
-
# @raise [ArgumentError] if field is not GroupDocs::DataSource::Field object
|
87
|
-
#
|
88
|
-
def add_field(field)
|
89
|
-
field.is_a?(GroupDocs::DataSource::Field) or raise ArgumentError,
|
90
|
-
"Field should be GroupDocs::DataSource::Field object, received: #{field.inspect}"
|
91
|
-
|
92
|
-
@fields ||= Array.new
|
93
|
-
@fields << field
|
94
|
-
end
|
95
|
-
|
96
|
-
#
|
97
|
-
# Adds datasource.
|
98
|
-
#
|
99
|
-
# @example
|
100
|
-
# field = GroupDocs::DataSource::Field.new(name: 'test', values: %w(test test))
|
101
|
-
# datasource = GroupDocs::DataSource.new
|
102
|
-
# datasource.add_field(field)
|
103
|
-
# datasource.add!
|
104
|
-
#
|
105
|
-
# @param [Hash] access Access credentials
|
106
|
-
# @option access [String] :client_id
|
107
|
-
# @option access [String] :private_key
|
108
|
-
#
|
109
|
-
def add!(access = {})
|
110
|
-
json = Api::Request.new do |request|
|
111
|
-
request[:access] = access
|
112
|
-
request[:method] = :POST
|
113
|
-
request[:path] = '/merge/{{client_id}}/datasources'
|
114
|
-
request[:request_body] = to_hash
|
115
|
-
end.execute!
|
116
|
-
|
117
|
-
self.id = json[:datasource_id]
|
118
|
-
end
|
119
|
-
|
120
|
-
#
|
121
|
-
# Updates datasource.
|
122
|
-
#
|
123
|
-
# @example
|
124
|
-
# field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
|
125
|
-
# datasource = GroupDocs::DataSource.get!(180)
|
126
|
-
# datasource.add_field(field)
|
127
|
-
# datasource.update!
|
128
|
-
#
|
129
|
-
# @param [Hash] access Access credentials
|
130
|
-
# @option access [String] :client_id
|
131
|
-
# @option access [String] :private_key
|
132
|
-
#
|
133
|
-
def update!(access = {})
|
134
|
-
Api::Request.new do |request|
|
135
|
-
request[:access] = access
|
136
|
-
request[:method] = :PUT
|
137
|
-
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
138
|
-
request[:request_body] = to_hash
|
139
|
-
end.execute!
|
140
|
-
end
|
141
|
-
|
142
|
-
#
|
143
|
-
# Updates datasource.
|
144
|
-
#
|
145
|
-
# @example
|
146
|
-
# field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
|
147
|
-
# datasource = GroupDocs::DataSource.get!(180)
|
148
|
-
# datasource.add_field(field)
|
149
|
-
# datasource.update_fields!
|
150
|
-
#
|
151
|
-
# @param [Hash] access Access credentials
|
152
|
-
# @option access [String] :client_id
|
153
|
-
# @option access [String] :private_key
|
154
|
-
#
|
155
|
-
def update_fields!(access = {})
|
156
|
-
Api::Request.new do |request|
|
157
|
-
request[:access] = access
|
158
|
-
request[:method] = :PUT
|
159
|
-
request[:path] = "/merge/{{client_id}}/datasources/#{id}/fields"
|
160
|
-
request[:request_body] = to_hash
|
161
|
-
end.execute!
|
162
|
-
end
|
163
|
-
|
164
|
-
#
|
165
|
-
# Removes datasource.
|
166
|
-
#
|
167
|
-
# @param [Hash] access Access credentials
|
168
|
-
# @option access [String] :client_id
|
169
|
-
# @option access [String] :private_key
|
170
|
-
#
|
171
|
-
def remove!(access = {})
|
172
|
-
Api::Request.new do |request|
|
173
|
-
request[:access] = access
|
174
|
-
request[:method] = :DELETE
|
175
|
-
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
176
|
-
end.execute!
|
177
|
-
# TODO: fix this in API - http://scotland.groupdocs.com/jira/browse/CORE-387
|
178
|
-
rescue RestClient::BadRequest
|
179
|
-
nil
|
180
|
-
end
|
181
|
-
|
182
|
-
#
|
183
|
-
# Add job document datasource.
|
184
|
-
#
|
185
|
-
# @example
|
186
|
-
# file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
|
187
|
-
# field = GroupDocs::DataSource::Field.new(:name => "test")
|
188
|
-
# datasource = GroupDocs::DataSource.new
|
189
|
-
# datasource.add_field(field).add!()
|
190
|
-
# job = GroupDocs::Job.create!()
|
191
|
-
# file_id = job.add_document!(file)
|
192
|
-
# datasource = add_datasourse!(job, file_id, datasource)
|
193
|
-
#
|
194
|
-
# @param [GroupDocs::DataSource] datasource
|
195
|
-
# @param [String] jobId Job identifier
|
196
|
-
# @param [String] fileId File identifier
|
197
|
-
# @param [String] datasourceId
|
198
|
-
# @param [Hash] access Access credentials
|
199
|
-
# @option access [String] :client_id
|
200
|
-
# @option access [String] :private_key
|
201
|
-
#
|
202
|
-
def add_datasource!(job, file_id, datasource, access = {})
|
203
|
-
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
204
|
-
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
205
|
-
|
206
|
-
Api::Request.new do |request|
|
207
|
-
request[:access] = access
|
208
|
-
request[:method] = :PUT
|
209
|
-
request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources/#{datasource.id}"
|
210
|
-
end.execute!
|
211
|
-
end
|
212
|
-
|
213
|
-
#
|
214
|
-
# Add job document datasource fields.
|
215
|
-
#
|
216
|
-
#
|
217
|
-
# @example
|
218
|
-
# file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
|
219
|
-
# field = GroupDocs::DataSource::Field.new(:name => "test")
|
220
|
-
# datasource = GroupDocs::DataSource.new
|
221
|
-
# datasource.add_field(field)
|
222
|
-
# job = GroupDocs::Job.create!()
|
223
|
-
# file_id = job.add_document!(file)
|
224
|
-
# datasource = add_datasourse!(job, file_id, datasource)
|
225
|
-
#
|
226
|
-
#
|
227
|
-
#
|
228
|
-
# @param [String] jobId Job identifier
|
229
|
-
# @param [String] fileId File identifier
|
230
|
-
# @param [Array] datasourceFields
|
231
|
-
# @param [Hash] access Access credentials
|
232
|
-
# @option access [String] :client_id
|
233
|
-
# @option access [String] :private_key
|
234
|
-
#
|
235
|
-
def add_datasource_fields!(job, file_id, datasource, access = {})
|
236
|
-
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
237
|
-
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
238
|
-
Api::Request.new do |request|
|
239
|
-
request[:access] = access
|
240
|
-
request[:method] = :PUT
|
241
|
-
request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources"
|
242
|
-
request[:request_body] = datasource.fields
|
243
|
-
end.execute!
|
244
|
-
end
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
end # DataSource
|
249
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class DataSource < Api::Entity
|
3
|
+
|
4
|
+
require 'groupdocs/datasource/field'
|
5
|
+
|
6
|
+
#
|
7
|
+
# Returns datasource by given identifier.
|
8
|
+
#
|
9
|
+
# @param [Integer] id
|
10
|
+
# @param [Hash] options
|
11
|
+
# @option options [Array] :field Array of field names to be returned. All by default
|
12
|
+
# @param [Hash] access Access credentials
|
13
|
+
# @option access [String] :client_id
|
14
|
+
# @option access [String] :private_key
|
15
|
+
# @return [GroupDocs::DataSource, nil]
|
16
|
+
#
|
17
|
+
def self.get!(id, options = {}, access = {})
|
18
|
+
api = Api::Request.new do |request|
|
19
|
+
request[:access] = access
|
20
|
+
request[:method] = :GET
|
21
|
+
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
22
|
+
end
|
23
|
+
api.add_params(options)
|
24
|
+
json = api.execute!
|
25
|
+
|
26
|
+
DataSource.new(json[:datasource])
|
27
|
+
rescue RestClient::ResourceNotFound
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
31
|
+
# @attr [Integer] id
|
32
|
+
attr_accessor :id
|
33
|
+
# @attr [String] descr
|
34
|
+
attr_accessor :descr
|
35
|
+
# @attr [Integer] questionnaire_id
|
36
|
+
attr_accessor :questionnaire_id
|
37
|
+
# @attr [Time] created_on
|
38
|
+
attr_accessor :created_on
|
39
|
+
# @attr [Time] modified_on
|
40
|
+
attr_accessor :modified_on
|
41
|
+
# @attr [Array<GroupDocs::DataSource::Field>] fields
|
42
|
+
attr_accessor :fields
|
43
|
+
|
44
|
+
# Human-readable accessors
|
45
|
+
alias_accessor :description, :descr
|
46
|
+
|
47
|
+
#
|
48
|
+
# Converts timestamp which is return by API server to Time object.
|
49
|
+
#
|
50
|
+
# @return [Time]
|
51
|
+
#
|
52
|
+
def created_on
|
53
|
+
Time.at(@created_on / 1000)
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Converts timestamp which is return by API server to Time object.
|
58
|
+
#
|
59
|
+
# @return [Time]
|
60
|
+
#
|
61
|
+
def modified_on
|
62
|
+
Time.at(@modified_on / 1000)
|
63
|
+
end
|
64
|
+
|
65
|
+
#
|
66
|
+
# Converts each field to GroupDocs::DataSource::Field object.
|
67
|
+
#
|
68
|
+
# @param [Array<GroupDocs::DataSource::Field, Hash>] fields
|
69
|
+
#
|
70
|
+
def fields=(fields)
|
71
|
+
if fields
|
72
|
+
@fields = fields.map do |field|
|
73
|
+
if field.is_a?(GroupDocs::DataSource::Field)
|
74
|
+
field
|
75
|
+
else
|
76
|
+
DataSource::Field.new(field)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
#
|
83
|
+
# Adds field to datasource.
|
84
|
+
#
|
85
|
+
# @param [GroupDocs::DataSource::Field] question
|
86
|
+
# @raise [ArgumentError] if field is not GroupDocs::DataSource::Field object
|
87
|
+
#
|
88
|
+
def add_field(field)
|
89
|
+
field.is_a?(GroupDocs::DataSource::Field) or raise ArgumentError,
|
90
|
+
"Field should be GroupDocs::DataSource::Field object, received: #{field.inspect}"
|
91
|
+
|
92
|
+
@fields ||= Array.new
|
93
|
+
@fields << field
|
94
|
+
end
|
95
|
+
|
96
|
+
#
|
97
|
+
# Adds datasource.
|
98
|
+
#
|
99
|
+
# @example
|
100
|
+
# field = GroupDocs::DataSource::Field.new(name: 'test', values: %w(test test))
|
101
|
+
# datasource = GroupDocs::DataSource.new
|
102
|
+
# datasource.add_field(field)
|
103
|
+
# datasource.add!
|
104
|
+
#
|
105
|
+
# @param [Hash] access Access credentials
|
106
|
+
# @option access [String] :client_id
|
107
|
+
# @option access [String] :private_key
|
108
|
+
#
|
109
|
+
def add!(access = {})
|
110
|
+
json = Api::Request.new do |request|
|
111
|
+
request[:access] = access
|
112
|
+
request[:method] = :POST
|
113
|
+
request[:path] = '/merge/{{client_id}}/datasources'
|
114
|
+
request[:request_body] = to_hash
|
115
|
+
end.execute!
|
116
|
+
|
117
|
+
self.id = json[:datasource_id]
|
118
|
+
end
|
119
|
+
|
120
|
+
#
|
121
|
+
# Updates datasource.
|
122
|
+
#
|
123
|
+
# @example
|
124
|
+
# field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
|
125
|
+
# datasource = GroupDocs::DataSource.get!(180)
|
126
|
+
# datasource.add_field(field)
|
127
|
+
# datasource.update!
|
128
|
+
#
|
129
|
+
# @param [Hash] access Access credentials
|
130
|
+
# @option access [String] :client_id
|
131
|
+
# @option access [String] :private_key
|
132
|
+
#
|
133
|
+
def update!(access = {})
|
134
|
+
Api::Request.new do |request|
|
135
|
+
request[:access] = access
|
136
|
+
request[:method] = :PUT
|
137
|
+
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
138
|
+
request[:request_body] = to_hash
|
139
|
+
end.execute!
|
140
|
+
end
|
141
|
+
|
142
|
+
#
|
143
|
+
# Updates datasource.
|
144
|
+
#
|
145
|
+
# @example
|
146
|
+
# field = GroupDocs::DataSource::Field.new(field: 'test', values: %w(test test))
|
147
|
+
# datasource = GroupDocs::DataSource.get!(180)
|
148
|
+
# datasource.add_field(field)
|
149
|
+
# datasource.update_fields!
|
150
|
+
#
|
151
|
+
# @param [Hash] access Access credentials
|
152
|
+
# @option access [String] :client_id
|
153
|
+
# @option access [String] :private_key
|
154
|
+
#
|
155
|
+
def update_fields!(access = {})
|
156
|
+
Api::Request.new do |request|
|
157
|
+
request[:access] = access
|
158
|
+
request[:method] = :PUT
|
159
|
+
request[:path] = "/merge/{{client_id}}/datasources/#{id}/fields"
|
160
|
+
request[:request_body] = to_hash
|
161
|
+
end.execute!
|
162
|
+
end
|
163
|
+
|
164
|
+
#
|
165
|
+
# Removes datasource.
|
166
|
+
#
|
167
|
+
# @param [Hash] access Access credentials
|
168
|
+
# @option access [String] :client_id
|
169
|
+
# @option access [String] :private_key
|
170
|
+
#
|
171
|
+
def remove!(access = {})
|
172
|
+
Api::Request.new do |request|
|
173
|
+
request[:access] = access
|
174
|
+
request[:method] = :DELETE
|
175
|
+
request[:path] = "/merge/{{client_id}}/datasources/#{id}"
|
176
|
+
end.execute!
|
177
|
+
# TODO: fix this in API - http://scotland.groupdocs.com/jira/browse/CORE-387
|
178
|
+
rescue RestClient::BadRequest
|
179
|
+
nil
|
180
|
+
end
|
181
|
+
|
182
|
+
#
|
183
|
+
# Add job document datasource.
|
184
|
+
#
|
185
|
+
# @example
|
186
|
+
# file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
|
187
|
+
# field = GroupDocs::DataSource::Field.new(:name => "test")
|
188
|
+
# datasource = GroupDocs::DataSource.new
|
189
|
+
# datasource.add_field(field).add!()
|
190
|
+
# job = GroupDocs::Job.create!()
|
191
|
+
# file_id = job.add_document!(file)
|
192
|
+
# datasource = add_datasourse!(job, file_id, datasource)
|
193
|
+
#
|
194
|
+
# @param [GroupDocs::DataSource] datasource
|
195
|
+
# @param [String] jobId Job identifier
|
196
|
+
# @param [String] fileId File identifier
|
197
|
+
# @param [String] datasourceId
|
198
|
+
# @param [Hash] access Access credentials
|
199
|
+
# @option access [String] :client_id
|
200
|
+
# @option access [String] :private_key
|
201
|
+
#
|
202
|
+
def add_datasource!(job, file_id, datasource, access = {})
|
203
|
+
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
204
|
+
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
205
|
+
|
206
|
+
Api::Request.new do |request|
|
207
|
+
request[:access] = access
|
208
|
+
request[:method] = :PUT
|
209
|
+
request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources/#{datasource.id}"
|
210
|
+
end.execute!
|
211
|
+
end
|
212
|
+
|
213
|
+
#
|
214
|
+
# Add job document datasource fields.
|
215
|
+
#
|
216
|
+
#
|
217
|
+
# @example
|
218
|
+
# file = GroupDocs::Storage::File.new(guid => "(file guid)").to_document
|
219
|
+
# field = GroupDocs::DataSource::Field.new(:name => "test")
|
220
|
+
# datasource = GroupDocs::DataSource.new
|
221
|
+
# datasource.add_field(field)
|
222
|
+
# job = GroupDocs::Job.create!()
|
223
|
+
# file_id = job.add_document!(file)
|
224
|
+
# datasource = add_datasourse!(job, file_id, datasource)
|
225
|
+
#
|
226
|
+
#
|
227
|
+
#
|
228
|
+
# @param [String] jobId Job identifier
|
229
|
+
# @param [String] fileId File identifier
|
230
|
+
# @param [Array] datasourceFields
|
231
|
+
# @param [Hash] access Access credentials
|
232
|
+
# @option access [String] :client_id
|
233
|
+
# @option access [String] :private_key
|
234
|
+
#
|
235
|
+
def add_datasource_fields!(job, file_id, datasource, access = {})
|
236
|
+
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
237
|
+
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
238
|
+
Api::Request.new do |request|
|
239
|
+
request[:access] = access
|
240
|
+
request[:method] = :PUT
|
241
|
+
request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources"
|
242
|
+
request[:request_body] = datasource.fields
|
243
|
+
end.execute!
|
244
|
+
end
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
end # DataSource
|
249
|
+
end # GroupDocs
|