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,530 +1,530 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Questionnaire < Api::Entity
|
3
|
-
|
4
|
-
require 'groupdocs/questionnaire/collector'
|
5
|
-
require 'groupdocs/questionnaire/execution'
|
6
|
-
require 'groupdocs/questionnaire/page'
|
7
|
-
require 'groupdocs/questionnaire/question'
|
8
|
-
require 'groupdocs/questionnaire/collector_style'
|
9
|
-
|
10
|
-
|
11
|
-
include Api::Helpers::Status
|
12
|
-
|
13
|
-
#
|
14
|
-
# Returns an array of all questionnaires.
|
15
|
-
#
|
16
|
-
# @param [Hash] options Hash of options
|
17
|
-
# @option options [Symbol] :status Filter questionnaires by status
|
18
|
-
# @option options [Integer] :page_number Page to start with
|
19
|
-
# @option options [Integer] :page_size How many items to list
|
20
|
-
# @option options [String] :orderBy Order by column (optional)
|
21
|
-
# @option options [Bool] :isAscending Order by ascending or descending (optional)
|
22
|
-
# @param [Hash] access Access credentials
|
23
|
-
# @option access [String] :client_id
|
24
|
-
# @option access [String] :private_key
|
25
|
-
# @return [Array<GroupDocs::Questionnaire>]
|
26
|
-
#
|
27
|
-
def self.all!(options = {}, access = {})
|
28
|
-
if options[:status]
|
29
|
-
# TODO find better way to parse status
|
30
|
-
options[:status] = new.send(:parse_status, options[:status])
|
31
|
-
end
|
32
|
-
|
33
|
-
api = Api::Request.new do |request|
|
34
|
-
request[:access] = access
|
35
|
-
request[:method] = :GET
|
36
|
-
request[:path] = '/merge/{{client_id}}/questionnaires'
|
37
|
-
end
|
38
|
-
api.add_params(options)
|
39
|
-
json = api.execute!
|
40
|
-
|
41
|
-
json[:questionnaires].map do |questionnaire|
|
42
|
-
new(questionnaire)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
#
|
47
|
-
# Returns questionnaire by identifier.
|
48
|
-
#
|
49
|
-
# @param [Integer] id
|
50
|
-
# @param [Hash] access Access credentials
|
51
|
-
# @option access [String] :client_id
|
52
|
-
# @option access [String] :private_key
|
53
|
-
# @return [GroupDocs::Questionnaire, nil]
|
54
|
-
#
|
55
|
-
def self.get!(id, access = {})
|
56
|
-
json = Api::Request.new do |request|
|
57
|
-
request[:access] = access
|
58
|
-
request[:method] = :GET
|
59
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
60
|
-
end.execute!
|
61
|
-
|
62
|
-
new(json[:questionnaire])
|
63
|
-
rescue RestClient::ResourceNotFound
|
64
|
-
nil
|
65
|
-
end
|
66
|
-
|
67
|
-
# @attr [Integer] id
|
68
|
-
attr_accessor :id
|
69
|
-
# @attr [String] guid
|
70
|
-
attr_accessor :guid
|
71
|
-
# @attr [String] name
|
72
|
-
attr_accessor :name
|
73
|
-
# @attr [Symbol] status
|
74
|
-
attr_accessor :status
|
75
|
-
# @attr [String] descr
|
76
|
-
attr_accessor :descr
|
77
|
-
# @attr [Array<GroupDocs::Questionnaire::Page>] pages
|
78
|
-
attr_accessor :pages
|
79
|
-
# @attr [Integer] resolved_executions
|
80
|
-
attr_accessor :resolved_executions
|
81
|
-
# @attr [Integer] assigned_questions
|
82
|
-
attr_accessor :assigned_questions
|
83
|
-
# @attr [Integer] total_questions
|
84
|
-
attr_accessor :total_questions
|
85
|
-
# @attr [Integer] modified
|
86
|
-
attr_accessor :modified
|
87
|
-
# @attr [Integer] expires
|
88
|
-
attr_accessor :expires
|
89
|
-
# @attr [Array<String>] document_ids
|
90
|
-
attr_accessor :document_ids
|
91
|
-
|
92
|
-
# added in release 1.5.8
|
93
|
-
#
|
94
|
-
# @attr [Array<String>] formats
|
95
|
-
attr_accessor :formats
|
96
|
-
# @attr [String] folder
|
97
|
-
attr_accessor :folder
|
98
|
-
# @attr [String] emails
|
99
|
-
attr_accessor :emails
|
100
|
-
# @attr [String] output_format
|
101
|
-
attr_accessor :output_format
|
102
|
-
# @attr [Boolean] open_on_completion
|
103
|
-
attr_accessor :open_on_completion
|
104
|
-
# @attr [Integer] allowed_operations
|
105
|
-
attr_accessor :allowed_operations
|
106
|
-
|
107
|
-
# added in release 1.6.0
|
108
|
-
# @attr [Integer] totalCount
|
109
|
-
attr_accessor :totalCount
|
110
|
-
|
111
|
-
|
112
|
-
# Human-readable accessors
|
113
|
-
alias_accessor :description, :descr
|
114
|
-
|
115
|
-
# added in release 1.6.0
|
116
|
-
alias_accessor :total_count, :totalCount
|
117
|
-
|
118
|
-
#
|
119
|
-
# Converts each page to GroupDocs::Questionnaire::Page object.
|
120
|
-
#
|
121
|
-
# @param [Array<GroupDocs::Questionnaire::Page, Hash>] pages
|
122
|
-
#
|
123
|
-
def pages=(pages)
|
124
|
-
if pages
|
125
|
-
@pages = pages.map do |page|
|
126
|
-
if page.is_a?(GroupDocs::Questionnaire::Page)
|
127
|
-
page
|
128
|
-
else
|
129
|
-
Questionnaire::Page.new(page)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
#
|
138
|
-
# Converts status to human-readable format.
|
139
|
-
#
|
140
|
-
# @return [Symbol]
|
141
|
-
#
|
142
|
-
def status
|
143
|
-
parse_status(@status)
|
144
|
-
end
|
145
|
-
|
146
|
-
#
|
147
|
-
# Adds page to questionnaire.
|
148
|
-
#
|
149
|
-
# @param [GroupDocs::Questionnaire::Page] page
|
150
|
-
# @raise [ArgumentError] if page is not GroupDocs::Questionnaire::Page object
|
151
|
-
#
|
152
|
-
def add_page(page)
|
153
|
-
page.is_a?(GroupDocs::Questionnaire::Page) or raise ArgumentError,
|
154
|
-
"Page should be GroupDocs::Questionnaire::Page object, received: #{page.inspect}"
|
155
|
-
|
156
|
-
@pages ||= Array.new
|
157
|
-
@pages << page
|
158
|
-
end
|
159
|
-
|
160
|
-
|
161
|
-
#
|
162
|
-
# Creates questionnaire.
|
163
|
-
#
|
164
|
-
# @example
|
165
|
-
#
|
166
|
-
# questionnaire = GroupDocs::Questionnaire.new()
|
167
|
-
# pages = GroupDocs::Questionnaire::Page.new()
|
168
|
-
# questions = GroupDocs::Questionnaire::Question.new()
|
169
|
-
# answer = GroupDocs::Questionnaire::Question::Answer.new()
|
170
|
-
# questions.answers = [answer]
|
171
|
-
# conditions = GroupDocs::Questionnaire::Question::Conditions.new()
|
172
|
-
# questions.conditions = [conditions]
|
173
|
-
# pages.questions = [questions]
|
174
|
-
# questionnaire.pages = [pages]
|
175
|
-
# questionnaire.create!
|
176
|
-
#
|
177
|
-
# @param [Hash] access Access credentials
|
178
|
-
# @option access [String] :client_id
|
179
|
-
# @option access [String] :private_key
|
180
|
-
#
|
181
|
-
def create!(access = {})
|
182
|
-
json = Api::Request.new do |request|
|
183
|
-
request[:access] = access
|
184
|
-
request[:method] = :POST
|
185
|
-
request[:path] = '/merge/{{client_id}}/questionnaires'
|
186
|
-
request[:request_body] = to_hash
|
187
|
-
end.execute!
|
188
|
-
|
189
|
-
self.id = json[:questionnaire_id]
|
190
|
-
self.guid = json[:questionnaire_guid]
|
191
|
-
self.name = json[:adjusted_name]
|
192
|
-
end
|
193
|
-
|
194
|
-
#
|
195
|
-
# Updates questionnaire.
|
196
|
-
#
|
197
|
-
# @param [Hash] access Access credentials
|
198
|
-
# @option access [String] :client_id
|
199
|
-
# @option access [String] :private_key
|
200
|
-
#
|
201
|
-
def update!(access = {})
|
202
|
-
Api::Request.new do |request|
|
203
|
-
request[:access] = access
|
204
|
-
request[:method] = :PUT
|
205
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
206
|
-
request[:request_body] = to_hash
|
207
|
-
end.execute!
|
208
|
-
end
|
209
|
-
|
210
|
-
#
|
211
|
-
# Removes questionnaire.
|
212
|
-
#
|
213
|
-
# @param [Hash] access Access credentials
|
214
|
-
# @option access [String] :client_id
|
215
|
-
# @option access [String] :private_key
|
216
|
-
#
|
217
|
-
def remove!(access = {})
|
218
|
-
Api::Request.new do |request|
|
219
|
-
request[:access] = access
|
220
|
-
request[:method] = :DELETE
|
221
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
222
|
-
end.execute!
|
223
|
-
# TODO: fix this in API - http://scotland.groupdocs.com/jira/browse/CORE-391
|
224
|
-
rescue RestClient::BadRequest
|
225
|
-
nil
|
226
|
-
end
|
227
|
-
|
228
|
-
#
|
229
|
-
# Returns array of datasources for questionnaire.
|
230
|
-
#
|
231
|
-
# @param [Hash] access Access credentials
|
232
|
-
# @option access [String] :client_id
|
233
|
-
# @option access [String] :private_key
|
234
|
-
# @return [Array<GroupDocs::DataSource>]
|
235
|
-
#
|
236
|
-
def datasources!(access = {})
|
237
|
-
json = Api::Request.new do |request|
|
238
|
-
request[:access] = access
|
239
|
-
request[:method] = :GET
|
240
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/datasources"
|
241
|
-
end.execute!
|
242
|
-
|
243
|
-
json[:datasources].map do |datasource|
|
244
|
-
DataSource.new(datasource)
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
|
-
#
|
249
|
-
# Returns an array of questionnaire executions.
|
250
|
-
#
|
251
|
-
# @param [Hash] access Access credentials
|
252
|
-
# @option access [String] :client_id
|
253
|
-
# @option access [String] :private_key
|
254
|
-
# @return [Array<GroupDocs::Questionnaire::Execution>]
|
255
|
-
#
|
256
|
-
def executions!(access = {})
|
257
|
-
json = Api::Request.new do |request|
|
258
|
-
request[:access] = access
|
259
|
-
request[:method] = :GET
|
260
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/executions"
|
261
|
-
end.execute!
|
262
|
-
|
263
|
-
json[:executions].map do |execution|
|
264
|
-
Execution.new(execution)
|
265
|
-
end
|
266
|
-
end
|
267
|
-
|
268
|
-
#
|
269
|
-
# Changed in release 1.5.8
|
270
|
-
#
|
271
|
-
#
|
272
|
-
# Returns an array of questionnaire collectors.
|
273
|
-
#
|
274
|
-
#
|
275
|
-
# @param [Hash] options Options
|
276
|
-
# @option options [String] :orderBy Order by column (required)
|
277
|
-
# @option options [Boolean] :isAsc Order by ascending or descending (required)
|
278
|
-
# @param [Hash] access Access credentials
|
279
|
-
# @option access [String] :client_id
|
280
|
-
# @option access [String] :private_key
|
281
|
-
# @return [Array<GroupDocs::Questionnaire::Collector>]
|
282
|
-
#
|
283
|
-
def collectors!(options = {}, access = {})
|
284
|
-
api = Api::Request.new do |request|
|
285
|
-
request[:access] = access
|
286
|
-
request[:method] = :GET
|
287
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/collectors"
|
288
|
-
end
|
289
|
-
api.add_params(options)
|
290
|
-
json = api.execute!
|
291
|
-
|
292
|
-
json[:collectors].map do |collector|
|
293
|
-
collector.merge!(:questionnaire => self)
|
294
|
-
Collector.new(collector)
|
295
|
-
end
|
296
|
-
end
|
297
|
-
|
298
|
-
#
|
299
|
-
# Returns questionnaire metadata.
|
300
|
-
#
|
301
|
-
# @param [Hash] access Access credentials
|
302
|
-
# @option access [String] :client_id
|
303
|
-
# @option access [String] :private_key
|
304
|
-
# @return [GroupDocs::Questionnaire]
|
305
|
-
#
|
306
|
-
def metadata!(access = {})
|
307
|
-
json = Api::Request.new do |request|
|
308
|
-
request[:access] = access
|
309
|
-
request[:method] = :GET
|
310
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata"
|
311
|
-
end.execute!
|
312
|
-
|
313
|
-
Questionnaire.new(json[:questionnaire])
|
314
|
-
end
|
315
|
-
|
316
|
-
#
|
317
|
-
# Updates questionnaire metadata.
|
318
|
-
#
|
319
|
-
# @example
|
320
|
-
# questionnaire = GroupDocs::Questionnaire.get!(1)
|
321
|
-
# metadata = questionnaire.metadata!
|
322
|
-
# metadata.name = 'New questionnaire name'
|
323
|
-
# questionnaire.update_metadata! metadata
|
324
|
-
#
|
325
|
-
# @param [Hash] access Access credentials
|
326
|
-
# @option access [String] :client_id
|
327
|
-
# @option access [String] :private_key
|
328
|
-
# @raise [ArgumentError] if metadata is not GroupDocs::Questionnaire
|
329
|
-
#
|
330
|
-
def update_metadata!(metadata, access = {})
|
331
|
-
metadata.is_a?(GroupDocs::Questionnaire) or raise ArgumentError,
|
332
|
-
"Metadata should be GroupDocs::Questionnaire object, received: #{metadata.inspect}"
|
333
|
-
|
334
|
-
Api::Request.new do |request|
|
335
|
-
request[:access] = access
|
336
|
-
request[:method] = :PUT
|
337
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata"
|
338
|
-
request[:request_body] = metadata.to_hash
|
339
|
-
end.execute!
|
340
|
-
end
|
341
|
-
|
342
|
-
#
|
343
|
-
# Returns an array of document fields for questionnaire.
|
344
|
-
#
|
345
|
-
# @param [Hash] access Access credentials
|
346
|
-
# @option access [String] :client_id
|
347
|
-
# @option access [String] :private_key
|
348
|
-
# @return [Array<GroupDocs::Document::Field>]
|
349
|
-
#
|
350
|
-
def fields!(access = {})
|
351
|
-
api = Api::Request.new do |request|
|
352
|
-
request[:access] = access
|
353
|
-
request[:method] = :GET
|
354
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/fields"
|
355
|
-
end
|
356
|
-
api.add_params(:include_geometry => true)
|
357
|
-
json = api.execute!
|
358
|
-
|
359
|
-
json[:fields].map do |field|
|
360
|
-
Document::Field.new(field)
|
361
|
-
end
|
362
|
-
end
|
363
|
-
|
364
|
-
#
|
365
|
-
# Changed in release 1.5.8
|
366
|
-
#
|
367
|
-
# Copy file to given path.
|
368
|
-
#
|
369
|
-
# @param [String] path (required)
|
370
|
-
# @param [String] mode Mode (optional)
|
371
|
-
# @param [Hash] options
|
372
|
-
# @option options [String] name
|
373
|
-
# @param [Hash] access Access credentials
|
374
|
-
# @option access [String] :client_id
|
375
|
-
# @option access [String] :private_key
|
376
|
-
# @return [Array] Templates
|
377
|
-
#
|
378
|
-
def copy_to_templates!(path, mode, options = {}, access = {})
|
379
|
-
options[:name] ||= name
|
380
|
-
path = prepare_path("#{path}/#{options[:name]}")
|
381
|
-
|
382
|
-
api = Api::Request.new do |request|
|
383
|
-
request[:access] = access
|
384
|
-
request[:method] = :PUT
|
385
|
-
request[:headers] = { :'Groupdocs-Copy' => id }
|
386
|
-
request[:path] = "/merge/{{client_id}}/files/#{path}"
|
387
|
-
end
|
388
|
-
api.add_params(:mode => mode)
|
389
|
-
json = api.execute!
|
390
|
-
|
391
|
-
json[:templates]
|
392
|
-
end
|
393
|
-
|
394
|
-
|
395
|
-
#
|
396
|
-
# Added in release 1.5.8
|
397
|
-
#
|
398
|
-
# Get associated document by questionnaire
|
399
|
-
#
|
400
|
-
# @param [Hash] access Access credentials
|
401
|
-
# @option access [String] :client_id
|
402
|
-
# @option access [String] :private_key
|
403
|
-
#
|
404
|
-
def get_document!(access = {})
|
405
|
-
Api::Request.new do |request|
|
406
|
-
request[:access] = access
|
407
|
-
request[:method] = :GET
|
408
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/document"
|
409
|
-
end.execute!
|
410
|
-
end
|
411
|
-
|
412
|
-
#
|
413
|
-
# Added in release 1.5.8
|
414
|
-
#
|
415
|
-
# Returns an array of questionnaires by name.
|
416
|
-
#
|
417
|
-
# @param [Hash] options Hash of options
|
418
|
-
# @option options [String] :name Questionnaire name
|
419
|
-
# @option options [Symbol] :status Filter questionnaires by status
|
420
|
-
# @option options [Integer] :page_number Page to start with
|
421
|
-
# @option options [Integer] :page_size How many items to list
|
422
|
-
# @option options [String] :orderBy Order by column (optional)
|
423
|
-
# @option options [Bool] :isAscending Order by ascending or descending (optional)
|
424
|
-
# @param [Hash] access Access credentials
|
425
|
-
# @option access [String] :client_id
|
426
|
-
# @option access [String] :private_key
|
427
|
-
# @return [Array<GroupDocs::Questionnaire>]
|
428
|
-
#
|
429
|
-
def self.get_by_name!(options = {}, access = {})
|
430
|
-
if options[:status]
|
431
|
-
# TODO find better way to parse status
|
432
|
-
options[:status] = new.send(:parse_status, options[:status])
|
433
|
-
end
|
434
|
-
|
435
|
-
api = Api::Request.new do |request|
|
436
|
-
request[:access] = access
|
437
|
-
request[:method] = :GET
|
438
|
-
request[:path] = '/merge/{{client_id}}/questionnaires/filter'
|
439
|
-
end
|
440
|
-
|
441
|
-
api.add_params(options)
|
442
|
-
json = api.execute!
|
443
|
-
|
444
|
-
json[:questionnaires].map do |questionnaire|
|
445
|
-
new(questionnaire)
|
446
|
-
end
|
447
|
-
end
|
448
|
-
|
449
|
-
#
|
450
|
-
# Added in release 1.5.8
|
451
|
-
#
|
452
|
-
# Delete list of questionnaires by GUIDs.
|
453
|
-
#
|
454
|
-
# @param [Hash] access Access credentials
|
455
|
-
# @option guids [Array<String>] List of Questionnaires Guid
|
456
|
-
# @option access [String] :client_id
|
457
|
-
# @option access [String] :private_key
|
458
|
-
#
|
459
|
-
def delete_list!(guids, access = {})
|
460
|
-
api = Api::Request.new do |request|
|
461
|
-
request[:access] = access
|
462
|
-
request[:method] = :DELETE
|
463
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/list"
|
464
|
-
request[:request_body] = guids
|
465
|
-
end
|
466
|
-
|
467
|
-
api.execute!
|
468
|
-
end
|
469
|
-
|
470
|
-
#
|
471
|
-
# Added in release 1.5.8
|
472
|
-
#
|
473
|
-
# Removes questionnaire collector.
|
474
|
-
#
|
475
|
-
# @param [Hash] access Access credentials
|
476
|
-
# @option collectors [Array<String>] List of Collectors Guid
|
477
|
-
# @option access [String] :client_id
|
478
|
-
# @option access [String] :private_key
|
479
|
-
#
|
480
|
-
def delete_collectors_list!(collectors, access = {})
|
481
|
-
Api::Request.new do |request|
|
482
|
-
request[:access] = access
|
483
|
-
request[:method] = :DELETE
|
484
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/collectors/list"
|
485
|
-
request[:request_body] = collectors
|
486
|
-
end.execute!
|
487
|
-
end
|
488
|
-
|
489
|
-
#
|
490
|
-
# Added in release 1.5.8
|
491
|
-
#
|
492
|
-
# Removes questionnaire execution.
|
493
|
-
#
|
494
|
-
# @param [Hash] access Access credentials
|
495
|
-
# @option executions [Array<String>] List of Executions Guid
|
496
|
-
# @option access [String] :client_id
|
497
|
-
# @option access [String] :private_key
|
498
|
-
#
|
499
|
-
def delete_executions_list!(executions, access = {})
|
500
|
-
Api::Request.new do |request|
|
501
|
-
request[:access] = access
|
502
|
-
request[:method] = :DELETE
|
503
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/list"
|
504
|
-
request[:request_body] = executions
|
505
|
-
end.execute!
|
506
|
-
end
|
507
|
-
|
508
|
-
#
|
509
|
-
# Added in release 1.5.8
|
510
|
-
#
|
511
|
-
# Delete list of datasource fields.
|
512
|
-
#
|
513
|
-
# @param [Hash] access Access credentials
|
514
|
-
# @option datasource [Array<String>] List of Datasources Guid
|
515
|
-
# @option access [String] :client_id
|
516
|
-
# @option access [String] :private_key
|
517
|
-
#
|
518
|
-
def delete_datasources_list!(datasources, access = {})
|
519
|
-
Api::Request.new do |request|
|
520
|
-
request[:access] = access
|
521
|
-
request[:method] = :DELETE
|
522
|
-
request[:path] = "/merge/{{client_id}}datasources/list"
|
523
|
-
request[:request_body] = datasources
|
524
|
-
end.execute!
|
525
|
-
end
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
end # Questionnaire
|
530
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Questionnaire < Api::Entity
|
3
|
+
|
4
|
+
require 'groupdocs/questionnaire/collector'
|
5
|
+
require 'groupdocs/questionnaire/execution'
|
6
|
+
require 'groupdocs/questionnaire/page'
|
7
|
+
require 'groupdocs/questionnaire/question'
|
8
|
+
require 'groupdocs/questionnaire/collector_style'
|
9
|
+
|
10
|
+
|
11
|
+
include Api::Helpers::Status
|
12
|
+
|
13
|
+
#
|
14
|
+
# Returns an array of all questionnaires.
|
15
|
+
#
|
16
|
+
# @param [Hash] options Hash of options
|
17
|
+
# @option options [Symbol] :status Filter questionnaires by status
|
18
|
+
# @option options [Integer] :page_number Page to start with
|
19
|
+
# @option options [Integer] :page_size How many items to list
|
20
|
+
# @option options [String] :orderBy Order by column (optional)
|
21
|
+
# @option options [Bool] :isAscending Order by ascending or descending (optional)
|
22
|
+
# @param [Hash] access Access credentials
|
23
|
+
# @option access [String] :client_id
|
24
|
+
# @option access [String] :private_key
|
25
|
+
# @return [Array<GroupDocs::Questionnaire>]
|
26
|
+
#
|
27
|
+
def self.all!(options = {}, access = {})
|
28
|
+
if options[:status]
|
29
|
+
# TODO find better way to parse status
|
30
|
+
options[:status] = new.send(:parse_status, options[:status])
|
31
|
+
end
|
32
|
+
|
33
|
+
api = Api::Request.new do |request|
|
34
|
+
request[:access] = access
|
35
|
+
request[:method] = :GET
|
36
|
+
request[:path] = '/merge/{{client_id}}/questionnaires'
|
37
|
+
end
|
38
|
+
api.add_params(options)
|
39
|
+
json = api.execute!
|
40
|
+
|
41
|
+
json[:questionnaires].map do |questionnaire|
|
42
|
+
new(questionnaire)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Returns questionnaire by identifier.
|
48
|
+
#
|
49
|
+
# @param [Integer] id
|
50
|
+
# @param [Hash] access Access credentials
|
51
|
+
# @option access [String] :client_id
|
52
|
+
# @option access [String] :private_key
|
53
|
+
# @return [GroupDocs::Questionnaire, nil]
|
54
|
+
#
|
55
|
+
def self.get!(id, access = {})
|
56
|
+
json = Api::Request.new do |request|
|
57
|
+
request[:access] = access
|
58
|
+
request[:method] = :GET
|
59
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
60
|
+
end.execute!
|
61
|
+
|
62
|
+
new(json[:questionnaire])
|
63
|
+
rescue RestClient::ResourceNotFound
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
|
67
|
+
# @attr [Integer] id
|
68
|
+
attr_accessor :id
|
69
|
+
# @attr [String] guid
|
70
|
+
attr_accessor :guid
|
71
|
+
# @attr [String] name
|
72
|
+
attr_accessor :name
|
73
|
+
# @attr [Symbol] status
|
74
|
+
attr_accessor :status
|
75
|
+
# @attr [String] descr
|
76
|
+
attr_accessor :descr
|
77
|
+
# @attr [Array<GroupDocs::Questionnaire::Page>] pages
|
78
|
+
attr_accessor :pages
|
79
|
+
# @attr [Integer] resolved_executions
|
80
|
+
attr_accessor :resolved_executions
|
81
|
+
# @attr [Integer] assigned_questions
|
82
|
+
attr_accessor :assigned_questions
|
83
|
+
# @attr [Integer] total_questions
|
84
|
+
attr_accessor :total_questions
|
85
|
+
# @attr [Integer] modified
|
86
|
+
attr_accessor :modified
|
87
|
+
# @attr [Integer] expires
|
88
|
+
attr_accessor :expires
|
89
|
+
# @attr [Array<String>] document_ids
|
90
|
+
attr_accessor :document_ids
|
91
|
+
|
92
|
+
# added in release 1.5.8
|
93
|
+
#
|
94
|
+
# @attr [Array<String>] formats
|
95
|
+
attr_accessor :formats
|
96
|
+
# @attr [String] folder
|
97
|
+
attr_accessor :folder
|
98
|
+
# @attr [String] emails
|
99
|
+
attr_accessor :emails
|
100
|
+
# @attr [String] output_format
|
101
|
+
attr_accessor :output_format
|
102
|
+
# @attr [Boolean] open_on_completion
|
103
|
+
attr_accessor :open_on_completion
|
104
|
+
# @attr [Integer] allowed_operations
|
105
|
+
attr_accessor :allowed_operations
|
106
|
+
|
107
|
+
# added in release 1.6.0
|
108
|
+
# @attr [Integer] totalCount
|
109
|
+
attr_accessor :totalCount
|
110
|
+
|
111
|
+
|
112
|
+
# Human-readable accessors
|
113
|
+
alias_accessor :description, :descr
|
114
|
+
|
115
|
+
# added in release 1.6.0
|
116
|
+
alias_accessor :total_count, :totalCount
|
117
|
+
|
118
|
+
#
|
119
|
+
# Converts each page to GroupDocs::Questionnaire::Page object.
|
120
|
+
#
|
121
|
+
# @param [Array<GroupDocs::Questionnaire::Page, Hash>] pages
|
122
|
+
#
|
123
|
+
def pages=(pages)
|
124
|
+
if pages
|
125
|
+
@pages = pages.map do |page|
|
126
|
+
if page.is_a?(GroupDocs::Questionnaire::Page)
|
127
|
+
page
|
128
|
+
else
|
129
|
+
Questionnaire::Page.new(page)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
#
|
138
|
+
# Converts status to human-readable format.
|
139
|
+
#
|
140
|
+
# @return [Symbol]
|
141
|
+
#
|
142
|
+
def status
|
143
|
+
parse_status(@status)
|
144
|
+
end
|
145
|
+
|
146
|
+
#
|
147
|
+
# Adds page to questionnaire.
|
148
|
+
#
|
149
|
+
# @param [GroupDocs::Questionnaire::Page] page
|
150
|
+
# @raise [ArgumentError] if page is not GroupDocs::Questionnaire::Page object
|
151
|
+
#
|
152
|
+
def add_page(page)
|
153
|
+
page.is_a?(GroupDocs::Questionnaire::Page) or raise ArgumentError,
|
154
|
+
"Page should be GroupDocs::Questionnaire::Page object, received: #{page.inspect}"
|
155
|
+
|
156
|
+
@pages ||= Array.new
|
157
|
+
@pages << page
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
#
|
162
|
+
# Creates questionnaire.
|
163
|
+
#
|
164
|
+
# @example
|
165
|
+
#
|
166
|
+
# questionnaire = GroupDocs::Questionnaire.new()
|
167
|
+
# pages = GroupDocs::Questionnaire::Page.new()
|
168
|
+
# questions = GroupDocs::Questionnaire::Question.new()
|
169
|
+
# answer = GroupDocs::Questionnaire::Question::Answer.new()
|
170
|
+
# questions.answers = [answer]
|
171
|
+
# conditions = GroupDocs::Questionnaire::Question::Conditions.new()
|
172
|
+
# questions.conditions = [conditions]
|
173
|
+
# pages.questions = [questions]
|
174
|
+
# questionnaire.pages = [pages]
|
175
|
+
# questionnaire.create!
|
176
|
+
#
|
177
|
+
# @param [Hash] access Access credentials
|
178
|
+
# @option access [String] :client_id
|
179
|
+
# @option access [String] :private_key
|
180
|
+
#
|
181
|
+
def create!(access = {})
|
182
|
+
json = Api::Request.new do |request|
|
183
|
+
request[:access] = access
|
184
|
+
request[:method] = :POST
|
185
|
+
request[:path] = '/merge/{{client_id}}/questionnaires'
|
186
|
+
request[:request_body] = to_hash
|
187
|
+
end.execute!
|
188
|
+
|
189
|
+
self.id = json[:questionnaire_id]
|
190
|
+
self.guid = json[:questionnaire_guid]
|
191
|
+
self.name = json[:adjusted_name]
|
192
|
+
end
|
193
|
+
|
194
|
+
#
|
195
|
+
# Updates questionnaire.
|
196
|
+
#
|
197
|
+
# @param [Hash] access Access credentials
|
198
|
+
# @option access [String] :client_id
|
199
|
+
# @option access [String] :private_key
|
200
|
+
#
|
201
|
+
def update!(access = {})
|
202
|
+
Api::Request.new do |request|
|
203
|
+
request[:access] = access
|
204
|
+
request[:method] = :PUT
|
205
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
206
|
+
request[:request_body] = to_hash
|
207
|
+
end.execute!
|
208
|
+
end
|
209
|
+
|
210
|
+
#
|
211
|
+
# Removes questionnaire.
|
212
|
+
#
|
213
|
+
# @param [Hash] access Access credentials
|
214
|
+
# @option access [String] :client_id
|
215
|
+
# @option access [String] :private_key
|
216
|
+
#
|
217
|
+
def remove!(access = {})
|
218
|
+
Api::Request.new do |request|
|
219
|
+
request[:access] = access
|
220
|
+
request[:method] = :DELETE
|
221
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}"
|
222
|
+
end.execute!
|
223
|
+
# TODO: fix this in API - http://scotland.groupdocs.com/jira/browse/CORE-391
|
224
|
+
rescue RestClient::BadRequest
|
225
|
+
nil
|
226
|
+
end
|
227
|
+
|
228
|
+
#
|
229
|
+
# Returns array of datasources for questionnaire.
|
230
|
+
#
|
231
|
+
# @param [Hash] access Access credentials
|
232
|
+
# @option access [String] :client_id
|
233
|
+
# @option access [String] :private_key
|
234
|
+
# @return [Array<GroupDocs::DataSource>]
|
235
|
+
#
|
236
|
+
def datasources!(access = {})
|
237
|
+
json = Api::Request.new do |request|
|
238
|
+
request[:access] = access
|
239
|
+
request[:method] = :GET
|
240
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/datasources"
|
241
|
+
end.execute!
|
242
|
+
|
243
|
+
json[:datasources].map do |datasource|
|
244
|
+
DataSource.new(datasource)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
#
|
249
|
+
# Returns an array of questionnaire executions.
|
250
|
+
#
|
251
|
+
# @param [Hash] access Access credentials
|
252
|
+
# @option access [String] :client_id
|
253
|
+
# @option access [String] :private_key
|
254
|
+
# @return [Array<GroupDocs::Questionnaire::Execution>]
|
255
|
+
#
|
256
|
+
def executions!(access = {})
|
257
|
+
json = Api::Request.new do |request|
|
258
|
+
request[:access] = access
|
259
|
+
request[:method] = :GET
|
260
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/executions"
|
261
|
+
end.execute!
|
262
|
+
|
263
|
+
json[:executions].map do |execution|
|
264
|
+
Execution.new(execution)
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
#
|
269
|
+
# Changed in release 1.5.8
|
270
|
+
#
|
271
|
+
#
|
272
|
+
# Returns an array of questionnaire collectors.
|
273
|
+
#
|
274
|
+
#
|
275
|
+
# @param [Hash] options Options
|
276
|
+
# @option options [String] :orderBy Order by column (required)
|
277
|
+
# @option options [Boolean] :isAsc Order by ascending or descending (required)
|
278
|
+
# @param [Hash] access Access credentials
|
279
|
+
# @option access [String] :client_id
|
280
|
+
# @option access [String] :private_key
|
281
|
+
# @return [Array<GroupDocs::Questionnaire::Collector>]
|
282
|
+
#
|
283
|
+
def collectors!(options = {}, access = {})
|
284
|
+
api = Api::Request.new do |request|
|
285
|
+
request[:access] = access
|
286
|
+
request[:method] = :GET
|
287
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/collectors"
|
288
|
+
end
|
289
|
+
api.add_params(options)
|
290
|
+
json = api.execute!
|
291
|
+
|
292
|
+
json[:collectors].map do |collector|
|
293
|
+
collector.merge!(:questionnaire => self)
|
294
|
+
Collector.new(collector)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
#
|
299
|
+
# Returns questionnaire metadata.
|
300
|
+
#
|
301
|
+
# @param [Hash] access Access credentials
|
302
|
+
# @option access [String] :client_id
|
303
|
+
# @option access [String] :private_key
|
304
|
+
# @return [GroupDocs::Questionnaire]
|
305
|
+
#
|
306
|
+
def metadata!(access = {})
|
307
|
+
json = Api::Request.new do |request|
|
308
|
+
request[:access] = access
|
309
|
+
request[:method] = :GET
|
310
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata"
|
311
|
+
end.execute!
|
312
|
+
|
313
|
+
Questionnaire.new(json[:questionnaire])
|
314
|
+
end
|
315
|
+
|
316
|
+
#
|
317
|
+
# Updates questionnaire metadata.
|
318
|
+
#
|
319
|
+
# @example
|
320
|
+
# questionnaire = GroupDocs::Questionnaire.get!(1)
|
321
|
+
# metadata = questionnaire.metadata!
|
322
|
+
# metadata.name = 'New questionnaire name'
|
323
|
+
# questionnaire.update_metadata! metadata
|
324
|
+
#
|
325
|
+
# @param [Hash] access Access credentials
|
326
|
+
# @option access [String] :client_id
|
327
|
+
# @option access [String] :private_key
|
328
|
+
# @raise [ArgumentError] if metadata is not GroupDocs::Questionnaire
|
329
|
+
#
|
330
|
+
def update_metadata!(metadata, access = {})
|
331
|
+
metadata.is_a?(GroupDocs::Questionnaire) or raise ArgumentError,
|
332
|
+
"Metadata should be GroupDocs::Questionnaire object, received: #{metadata.inspect}"
|
333
|
+
|
334
|
+
Api::Request.new do |request|
|
335
|
+
request[:access] = access
|
336
|
+
request[:method] = :PUT
|
337
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/metadata"
|
338
|
+
request[:request_body] = metadata.to_hash
|
339
|
+
end.execute!
|
340
|
+
end
|
341
|
+
|
342
|
+
#
|
343
|
+
# Returns an array of document fields for questionnaire.
|
344
|
+
#
|
345
|
+
# @param [Hash] access Access credentials
|
346
|
+
# @option access [String] :client_id
|
347
|
+
# @option access [String] :private_key
|
348
|
+
# @return [Array<GroupDocs::Document::Field>]
|
349
|
+
#
|
350
|
+
def fields!(access = {})
|
351
|
+
api = Api::Request.new do |request|
|
352
|
+
request[:access] = access
|
353
|
+
request[:method] = :GET
|
354
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{guid}/fields"
|
355
|
+
end
|
356
|
+
api.add_params(:include_geometry => true)
|
357
|
+
json = api.execute!
|
358
|
+
|
359
|
+
json[:fields].map do |field|
|
360
|
+
Document::Field.new(field)
|
361
|
+
end
|
362
|
+
end
|
363
|
+
|
364
|
+
#
|
365
|
+
# Changed in release 1.5.8
|
366
|
+
#
|
367
|
+
# Copy file to given path.
|
368
|
+
#
|
369
|
+
# @param [String] path (required)
|
370
|
+
# @param [String] mode Mode (optional)
|
371
|
+
# @param [Hash] options
|
372
|
+
# @option options [String] name
|
373
|
+
# @param [Hash] access Access credentials
|
374
|
+
# @option access [String] :client_id
|
375
|
+
# @option access [String] :private_key
|
376
|
+
# @return [Array] Templates
|
377
|
+
#
|
378
|
+
def copy_to_templates!(path, mode, options = {}, access = {})
|
379
|
+
options[:name] ||= name
|
380
|
+
path = prepare_path("#{path}/#{options[:name]}")
|
381
|
+
|
382
|
+
api = Api::Request.new do |request|
|
383
|
+
request[:access] = access
|
384
|
+
request[:method] = :PUT
|
385
|
+
request[:headers] = { :'Groupdocs-Copy' => id }
|
386
|
+
request[:path] = "/merge/{{client_id}}/files/#{path}"
|
387
|
+
end
|
388
|
+
api.add_params(:mode => mode)
|
389
|
+
json = api.execute!
|
390
|
+
|
391
|
+
json[:templates]
|
392
|
+
end
|
393
|
+
|
394
|
+
|
395
|
+
#
|
396
|
+
# Added in release 1.5.8
|
397
|
+
#
|
398
|
+
# Get associated document by questionnaire
|
399
|
+
#
|
400
|
+
# @param [Hash] access Access credentials
|
401
|
+
# @option access [String] :client_id
|
402
|
+
# @option access [String] :private_key
|
403
|
+
#
|
404
|
+
def get_document!(access = {})
|
405
|
+
Api::Request.new do |request|
|
406
|
+
request[:access] = access
|
407
|
+
request[:method] = :GET
|
408
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/#{id}/document"
|
409
|
+
end.execute!
|
410
|
+
end
|
411
|
+
|
412
|
+
#
|
413
|
+
# Added in release 1.5.8
|
414
|
+
#
|
415
|
+
# Returns an array of questionnaires by name.
|
416
|
+
#
|
417
|
+
# @param [Hash] options Hash of options
|
418
|
+
# @option options [String] :name Questionnaire name
|
419
|
+
# @option options [Symbol] :status Filter questionnaires by status
|
420
|
+
# @option options [Integer] :page_number Page to start with
|
421
|
+
# @option options [Integer] :page_size How many items to list
|
422
|
+
# @option options [String] :orderBy Order by column (optional)
|
423
|
+
# @option options [Bool] :isAscending Order by ascending or descending (optional)
|
424
|
+
# @param [Hash] access Access credentials
|
425
|
+
# @option access [String] :client_id
|
426
|
+
# @option access [String] :private_key
|
427
|
+
# @return [Array<GroupDocs::Questionnaire>]
|
428
|
+
#
|
429
|
+
def self.get_by_name!(options = {}, access = {})
|
430
|
+
if options[:status]
|
431
|
+
# TODO find better way to parse status
|
432
|
+
options[:status] = new.send(:parse_status, options[:status])
|
433
|
+
end
|
434
|
+
|
435
|
+
api = Api::Request.new do |request|
|
436
|
+
request[:access] = access
|
437
|
+
request[:method] = :GET
|
438
|
+
request[:path] = '/merge/{{client_id}}/questionnaires/filter'
|
439
|
+
end
|
440
|
+
|
441
|
+
api.add_params(options)
|
442
|
+
json = api.execute!
|
443
|
+
|
444
|
+
json[:questionnaires].map do |questionnaire|
|
445
|
+
new(questionnaire)
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
#
|
450
|
+
# Added in release 1.5.8
|
451
|
+
#
|
452
|
+
# Delete list of questionnaires by GUIDs.
|
453
|
+
#
|
454
|
+
# @param [Hash] access Access credentials
|
455
|
+
# @option guids [Array<String>] List of Questionnaires Guid
|
456
|
+
# @option access [String] :client_id
|
457
|
+
# @option access [String] :private_key
|
458
|
+
#
|
459
|
+
def delete_list!(guids, access = {})
|
460
|
+
api = Api::Request.new do |request|
|
461
|
+
request[:access] = access
|
462
|
+
request[:method] = :DELETE
|
463
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/list"
|
464
|
+
request[:request_body] = guids
|
465
|
+
end
|
466
|
+
|
467
|
+
api.execute!
|
468
|
+
end
|
469
|
+
|
470
|
+
#
|
471
|
+
# Added in release 1.5.8
|
472
|
+
#
|
473
|
+
# Removes questionnaire collector.
|
474
|
+
#
|
475
|
+
# @param [Hash] access Access credentials
|
476
|
+
# @option collectors [Array<String>] List of Collectors Guid
|
477
|
+
# @option access [String] :client_id
|
478
|
+
# @option access [String] :private_key
|
479
|
+
#
|
480
|
+
def delete_collectors_list!(collectors, access = {})
|
481
|
+
Api::Request.new do |request|
|
482
|
+
request[:access] = access
|
483
|
+
request[:method] = :DELETE
|
484
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/collectors/list"
|
485
|
+
request[:request_body] = collectors
|
486
|
+
end.execute!
|
487
|
+
end
|
488
|
+
|
489
|
+
#
|
490
|
+
# Added in release 1.5.8
|
491
|
+
#
|
492
|
+
# Removes questionnaire execution.
|
493
|
+
#
|
494
|
+
# @param [Hash] access Access credentials
|
495
|
+
# @option executions [Array<String>] List of Executions Guid
|
496
|
+
# @option access [String] :client_id
|
497
|
+
# @option access [String] :private_key
|
498
|
+
#
|
499
|
+
def delete_executions_list!(executions, access = {})
|
500
|
+
Api::Request.new do |request|
|
501
|
+
request[:access] = access
|
502
|
+
request[:method] = :DELETE
|
503
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/list"
|
504
|
+
request[:request_body] = executions
|
505
|
+
end.execute!
|
506
|
+
end
|
507
|
+
|
508
|
+
#
|
509
|
+
# Added in release 1.5.8
|
510
|
+
#
|
511
|
+
# Delete list of datasource fields.
|
512
|
+
#
|
513
|
+
# @param [Hash] access Access credentials
|
514
|
+
# @option datasource [Array<String>] List of Datasources Guid
|
515
|
+
# @option access [String] :client_id
|
516
|
+
# @option access [String] :private_key
|
517
|
+
#
|
518
|
+
def delete_datasources_list!(datasources, access = {})
|
519
|
+
Api::Request.new do |request|
|
520
|
+
request[:access] = access
|
521
|
+
request[:method] = :DELETE
|
522
|
+
request[:path] = "/merge/{{client_id}}datasources/list"
|
523
|
+
request[:request_body] = datasources
|
524
|
+
end.execute!
|
525
|
+
end
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
end # Questionnaire
|
530
|
+
end # GroupDocs
|