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,71 +1,71 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Signature::Field::Location < Api::Entity
|
3
|
-
|
4
|
-
# @attr [String] id
|
5
|
-
attr_accessor :id
|
6
|
-
# @attr [String] documentId
|
7
|
-
attr_accessor :documentId
|
8
|
-
# @attr [String] fieldId
|
9
|
-
attr_accessor :fieldId
|
10
|
-
# @attr [Integer] page (required)
|
11
|
-
attr_accessor :page
|
12
|
-
# @attr [Float] locationX (required)
|
13
|
-
attr_accessor :locationX
|
14
|
-
# @attr [Float] locationY (required)
|
15
|
-
attr_accessor :locationY
|
16
|
-
# @attr [Float] locationWidth (required)
|
17
|
-
attr_accessor :locationWidth
|
18
|
-
# @attr [Float] locationHeight (required)
|
19
|
-
attr_accessor :locationHeight
|
20
|
-
# @attr [String] fontName
|
21
|
-
attr_accessor :fontName
|
22
|
-
# @attr [String] fontColor
|
23
|
-
attr_accessor :fontColor
|
24
|
-
# @attr [Integer] fontSize
|
25
|
-
attr_accessor :fontSize
|
26
|
-
# @attr [Boolean] fontBold
|
27
|
-
attr_accessor :fontBold
|
28
|
-
# @attr [Boolean] fontItalic
|
29
|
-
attr_accessor :fontItalic
|
30
|
-
# @attr [Boolean] fontUnderline
|
31
|
-
attr_accessor :fontUnderline
|
32
|
-
# @attr [Boolean] forceNewField
|
33
|
-
attr_accessor :forceNewField
|
34
|
-
# @attr [String] page
|
35
|
-
attr_accessor :page
|
36
|
-
|
37
|
-
# added in realise 1.5.8
|
38
|
-
# @attr [Integer] pageWidth
|
39
|
-
attr_accessor :pageWidth
|
40
|
-
# @attr [Integer] pageHeight
|
41
|
-
attr_accessor :pageHeight
|
42
|
-
# @attr [Integer] align
|
43
|
-
attr_accessor :align
|
44
|
-
|
45
|
-
|
46
|
-
# Human-readable accessors
|
47
|
-
alias_accessor :document_id, :documentId
|
48
|
-
alias_accessor :field_id, :fieldId
|
49
|
-
alias_accessor :location_x, :locationX
|
50
|
-
alias_accessor :x, :locationX
|
51
|
-
alias_accessor :location_y, :locationY
|
52
|
-
alias_accessor :y, :locationY
|
53
|
-
alias_accessor :location_w, :locationWidth
|
54
|
-
alias_accessor :location_width, :locationWidth
|
55
|
-
alias_accessor :w, :locationWidth
|
56
|
-
alias_accessor :location_h, :locationHeight
|
57
|
-
alias_accessor :location_height, :locationHeight
|
58
|
-
alias_accessor :h, :locationHeight
|
59
|
-
alias_accessor :font_name, :fontName
|
60
|
-
alias_accessor :font_color, :fontColor
|
61
|
-
alias_accessor :font_size, :fontSize
|
62
|
-
alias_accessor :font_bold, :fontBold
|
63
|
-
alias_accessor :font_italic, :fontItalic
|
64
|
-
alias_accessor :font_underline, :fontUnderline
|
65
|
-
alias_accessor :force_new_field, :forceNewField
|
66
|
-
# added in release 1.5.8
|
67
|
-
alias_accessor :page_width, :pageWidth
|
68
|
-
alias_accessor :page_height, :pageHeight
|
69
|
-
|
70
|
-
end # Signature::Field::Location
|
71
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Signature::Field::Location < Api::Entity
|
3
|
+
|
4
|
+
# @attr [String] id
|
5
|
+
attr_accessor :id
|
6
|
+
# @attr [String] documentId
|
7
|
+
attr_accessor :documentId
|
8
|
+
# @attr [String] fieldId
|
9
|
+
attr_accessor :fieldId
|
10
|
+
# @attr [Integer] page (required)
|
11
|
+
attr_accessor :page
|
12
|
+
# @attr [Float] locationX (required)
|
13
|
+
attr_accessor :locationX
|
14
|
+
# @attr [Float] locationY (required)
|
15
|
+
attr_accessor :locationY
|
16
|
+
# @attr [Float] locationWidth (required)
|
17
|
+
attr_accessor :locationWidth
|
18
|
+
# @attr [Float] locationHeight (required)
|
19
|
+
attr_accessor :locationHeight
|
20
|
+
# @attr [String] fontName
|
21
|
+
attr_accessor :fontName
|
22
|
+
# @attr [String] fontColor
|
23
|
+
attr_accessor :fontColor
|
24
|
+
# @attr [Integer] fontSize
|
25
|
+
attr_accessor :fontSize
|
26
|
+
# @attr [Boolean] fontBold
|
27
|
+
attr_accessor :fontBold
|
28
|
+
# @attr [Boolean] fontItalic
|
29
|
+
attr_accessor :fontItalic
|
30
|
+
# @attr [Boolean] fontUnderline
|
31
|
+
attr_accessor :fontUnderline
|
32
|
+
# @attr [Boolean] forceNewField
|
33
|
+
attr_accessor :forceNewField
|
34
|
+
# @attr [String] page
|
35
|
+
attr_accessor :page
|
36
|
+
|
37
|
+
# added in realise 1.5.8
|
38
|
+
# @attr [Integer] pageWidth
|
39
|
+
attr_accessor :pageWidth
|
40
|
+
# @attr [Integer] pageHeight
|
41
|
+
attr_accessor :pageHeight
|
42
|
+
# @attr [Integer] align
|
43
|
+
attr_accessor :align
|
44
|
+
|
45
|
+
|
46
|
+
# Human-readable accessors
|
47
|
+
alias_accessor :document_id, :documentId
|
48
|
+
alias_accessor :field_id, :fieldId
|
49
|
+
alias_accessor :location_x, :locationX
|
50
|
+
alias_accessor :x, :locationX
|
51
|
+
alias_accessor :location_y, :locationY
|
52
|
+
alias_accessor :y, :locationY
|
53
|
+
alias_accessor :location_w, :locationWidth
|
54
|
+
alias_accessor :location_width, :locationWidth
|
55
|
+
alias_accessor :w, :locationWidth
|
56
|
+
alias_accessor :location_h, :locationHeight
|
57
|
+
alias_accessor :location_height, :locationHeight
|
58
|
+
alias_accessor :h, :locationHeight
|
59
|
+
alias_accessor :font_name, :fontName
|
60
|
+
alias_accessor :font_color, :fontColor
|
61
|
+
alias_accessor :font_size, :fontSize
|
62
|
+
alias_accessor :font_bold, :fontBold
|
63
|
+
alias_accessor :font_italic, :fontItalic
|
64
|
+
alias_accessor :font_underline, :fontUnderline
|
65
|
+
alias_accessor :force_new_field, :forceNewField
|
66
|
+
# added in release 1.5.8
|
67
|
+
alias_accessor :page_width, :pageWidth
|
68
|
+
alias_accessor :page_height, :pageHeight
|
69
|
+
|
70
|
+
end # Signature::Field::Location
|
71
|
+
end # GroupDocs
|
@@ -1,804 +1,804 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Signature::Form < Api::Entity
|
3
|
-
|
4
|
-
include Api::Helpers::SignaturePublic
|
5
|
-
include Signature::EntityMethods
|
6
|
-
include Signature::DocumentMethods
|
7
|
-
include Signature::FieldMethods
|
8
|
-
extend Signature::ResourceMethods
|
9
|
-
|
10
|
-
# form doesn't have recipients
|
11
|
-
undef_method :assign_field!
|
12
|
-
|
13
|
-
STATUSES = {
|
14
|
-
:draft => -1,
|
15
|
-
:in_progress => 1,
|
16
|
-
:completed => 2,
|
17
|
-
:archived => 3,
|
18
|
-
}
|
19
|
-
|
20
|
-
#
|
21
|
-
# Returns a list of all forms.
|
22
|
-
#
|
23
|
-
# @param [Hash] options Hash of options
|
24
|
-
# @option options [Integer] :page Page to start with
|
25
|
-
# @option options [Integer] :records How many items to list
|
26
|
-
# @option options [Integer] :status_id Filter forms by status identifier
|
27
|
-
# @option options [String] :document Filter forms by document GUID
|
28
|
-
# @option options [String] :date Filter forms by date
|
29
|
-
# @option options [String] :name Filter forms by name
|
30
|
-
# @option options [String] :tag Filter forms by tag
|
31
|
-
# @param [Hash] access Access credentials
|
32
|
-
# @option access [String] :client_id
|
33
|
-
# @option access [String] :private_key
|
34
|
-
# @return [Array<GroupDocs::Signature::Form>]
|
35
|
-
#
|
36
|
-
def self.all!(options = {}, access = {})
|
37
|
-
status_id = options.delete(:status_id)
|
38
|
-
options[:statusId] = status_id if status_id
|
39
|
-
|
40
|
-
api = Api::Request.new do |request|
|
41
|
-
request[:access] = access
|
42
|
-
request[:method] = :GET
|
43
|
-
request[:path] = '/signature/{{client_id}}/forms'
|
44
|
-
end
|
45
|
-
api.add_params(options)
|
46
|
-
json = api.execute!
|
47
|
-
|
48
|
-
json[:forms].map do |form|
|
49
|
-
new(form)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
#
|
54
|
-
# Returns form by its identifier.
|
55
|
-
#
|
56
|
-
# @param [String] id
|
57
|
-
# @param [Hash] options
|
58
|
-
# @option options [Boolean] :public Defaults to false
|
59
|
-
# @param [Hash] access Access credentials
|
60
|
-
# @option access [String] :client_id
|
61
|
-
# @option access [String] :private_key
|
62
|
-
# @return [GroupDocs::Signature::Form]
|
63
|
-
#
|
64
|
-
def self.get!(id, options = {}, access = {})
|
65
|
-
if options[:public]
|
66
|
-
json = Api::Request.new do |request|
|
67
|
-
request[:access] = access
|
68
|
-
request[:method] = :GET
|
69
|
-
request[:path] = "/signature/public/forms/#{id}"
|
70
|
-
end.execute!
|
71
|
-
|
72
|
-
new(json[:form])
|
73
|
-
else
|
74
|
-
super(id, access)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
# @attr [String] id
|
79
|
-
attr_accessor :id
|
80
|
-
# @attr [String] name
|
81
|
-
attr_accessor :name
|
82
|
-
# @attr [String] ownerGuid
|
83
|
-
attr_accessor :ownerGuid
|
84
|
-
# @attr [String] templateGuid
|
85
|
-
attr_accessor :templateGuid
|
86
|
-
# @attr [String] createdTimeStamp
|
87
|
-
attr_accessor :createdTimeStamp
|
88
|
-
# @attr [String] statusDateTime
|
89
|
-
attr_accessor :statusDateTime
|
90
|
-
# @attr [Integer] documentsCount
|
91
|
-
attr_accessor :documentsCount
|
92
|
-
# @attr [Integer] documentsPages
|
93
|
-
attr_accessor :documentsPages
|
94
|
-
# @attr [Integer] participantsCount
|
95
|
-
attr_accessor :participantsCount
|
96
|
-
# @attr [Array] fieldsInFinalFileName
|
97
|
-
attr_accessor :fieldsInFinalFileName
|
98
|
-
# @attr [Boolean] canParticipantDownloadForm
|
99
|
-
attr_accessor :canParticipantDownloadForm
|
100
|
-
# @attr [Symbol] status
|
101
|
-
attr_accessor :status
|
102
|
-
# @attr [String] waterMarkText
|
103
|
-
attr_accessor :waterMarkText
|
104
|
-
# @attr [String] waterMarkImage
|
105
|
-
attr_accessor :waterMarkImage
|
106
|
-
# @attr [Boolean] notifyOwnerOnSign
|
107
|
-
attr_accessor :notifyOwnerOnSign
|
108
|
-
|
109
|
-
#added in release 1.6.0
|
110
|
-
# @attr [Boolean] canParticipantPrintForm
|
111
|
-
attr_accessor :canParticipantPrintForm
|
112
|
-
|
113
|
-
|
114
|
-
# Human-readable accessors
|
115
|
-
alias_accessor :owner_guid, :ownerGuid
|
116
|
-
alias_accessor :template_guid, :templateGuid
|
117
|
-
alias_accessor :created_time_stamp, :createdTimeStamp
|
118
|
-
alias_accessor :status_date_time, :statusDateTime
|
119
|
-
alias_accessor :documents_count, :documentsCount
|
120
|
-
alias_accessor :documents_pages, :documentsPages
|
121
|
-
alias_accessor :participants_count, :participantsCount
|
122
|
-
alias_accessor :can_participant_download_form, :canParticipantDownloadForm
|
123
|
-
alias_accessor :water_mark_text, :waterMarkText
|
124
|
-
alias_accessor :water_mark_image, :waterMarkImage
|
125
|
-
alias_accessor :notify_owner_on_sign, :notifyOwnerOnSign
|
126
|
-
|
127
|
-
#added in release 1.6.0
|
128
|
-
alias_accessor :can_participant_print_form, :canParticipantPrintForm
|
129
|
-
|
130
|
-
#
|
131
|
-
# Converts status to human-readable format.
|
132
|
-
# @return [Symbol]
|
133
|
-
#
|
134
|
-
def status
|
135
|
-
STATUSES.invert[@status]
|
136
|
-
end
|
137
|
-
|
138
|
-
#
|
139
|
-
# Converts array of field names to machine-readable format.
|
140
|
-
# @param [Array<String>] fields
|
141
|
-
#
|
142
|
-
def fields_in_final_file_name=(fields)
|
143
|
-
if fields.is_a?(Array)
|
144
|
-
fields = fields.join(',')
|
145
|
-
end
|
146
|
-
|
147
|
-
@fieldsInFinalFileName = fields
|
148
|
-
end
|
149
|
-
|
150
|
-
#
|
151
|
-
# Converts field names to human-readable format.
|
152
|
-
# @return [Array<String>]
|
153
|
-
#
|
154
|
-
def fields_in_final_file_name
|
155
|
-
@fieldsInFinalFileName.split(',') if @fieldsInFinalFileName
|
156
|
-
end
|
157
|
-
|
158
|
-
#
|
159
|
-
# Creates form.
|
160
|
-
#
|
161
|
-
# @example
|
162
|
-
# form = GroupDocs::Signature::Form.new
|
163
|
-
# form.name = "Form"
|
164
|
-
# form.create!
|
165
|
-
#
|
166
|
-
# @param [Hash] options Hash of options
|
167
|
-
# @option options [String] :template_id Template GUID to create form from
|
168
|
-
# @option options [Integer] :assembly_id Questionnaire identifier to create form from
|
169
|
-
# @param [Hash] access Access credentials
|
170
|
-
# @option access [String] :client_id
|
171
|
-
# @option access [String] :private_key
|
172
|
-
# @raise [ArgumentError] if template is not GroupDocs::Signature::Template
|
173
|
-
#
|
174
|
-
def create!(options = {}, access = {})
|
175
|
-
#template_id = options.delete(:template_id)
|
176
|
-
#assembly_id = options.delete(:assembly_id)
|
177
|
-
#options[:templateId] = template_id if template_id
|
178
|
-
#options[:assemblyId] = assembly_id if assembly_id
|
179
|
-
|
180
|
-
api = Api::Request.new do |request|
|
181
|
-
request[:access] = access
|
182
|
-
request[:method] = :POST
|
183
|
-
request[:path] = '/signature/{{client_id}}/form'
|
184
|
-
request[:request_body] = to_hash
|
185
|
-
|
186
|
-
end
|
187
|
-
|
188
|
-
api.add_params(options.merge(:name => name))
|
189
|
-
json = api.execute!
|
190
|
-
|
191
|
-
self.id = json[:form][:id]
|
192
|
-
end
|
193
|
-
|
194
|
-
#
|
195
|
-
# Returns documents array.
|
196
|
-
#
|
197
|
-
# @param [Hash] options
|
198
|
-
# @option options [Boolean] :public Defaults to false
|
199
|
-
# @param [Hash] access Access credentials
|
200
|
-
# @option access [String] :client_id
|
201
|
-
# @option access [String] :private_key
|
202
|
-
# @return [Array<GroupDocs::Document>]
|
203
|
-
#
|
204
|
-
def documents!(options = {}, access = {})
|
205
|
-
client_id = client_id(options[:public])
|
206
|
-
|
207
|
-
json = Api::Request.new do |request|
|
208
|
-
request[:access] = access
|
209
|
-
request[:method] = :GET
|
210
|
-
request[:path] = "/signature/#{client_id}/forms/#{id}/documents"
|
211
|
-
end.execute!
|
212
|
-
|
213
|
-
json[:documents].map do |document|
|
214
|
-
id = document[:documentId] || document[:id]
|
215
|
-
file = Storage::File.new(:guid => id, :name => document[:name])
|
216
|
-
Document.new(document.merge(:file => file))
|
217
|
-
end
|
218
|
-
end
|
219
|
-
|
220
|
-
#
|
221
|
-
# Publishes form.
|
222
|
-
#
|
223
|
-
# @param [Hash] access Access credentials
|
224
|
-
# @option access [String] :client_id
|
225
|
-
# @option access [String] :private_key
|
226
|
-
# @param callbackUrl [Hash] Webhook Callback Url
|
227
|
-
# @option callbackUrl [String] :callbackUrl
|
228
|
-
#
|
229
|
-
def publish!(callbackUrl = {}, access = {})
|
230
|
-
Api::Request.new do |request|
|
231
|
-
request[:access] = access
|
232
|
-
request[:method] = :PUT
|
233
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/publish"
|
234
|
-
request[:request_body] = callbackUrl
|
235
|
-
end.execute!
|
236
|
-
end
|
237
|
-
|
238
|
-
#
|
239
|
-
# Completes form.
|
240
|
-
#
|
241
|
-
# @param [Hash] access Access credentials
|
242
|
-
# @option access [String] :client_id
|
243
|
-
# @option access [String] :private_key
|
244
|
-
#
|
245
|
-
def complete!(access = {})
|
246
|
-
Api::Request.new do |request|
|
247
|
-
request[:access] = access
|
248
|
-
request[:method] = :PUT
|
249
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/complete"
|
250
|
-
end.execute!
|
251
|
-
end
|
252
|
-
|
253
|
-
#
|
254
|
-
# Archives completed form.
|
255
|
-
#
|
256
|
-
# @param [Hash] access Access credentials
|
257
|
-
# @option access [String] :client_id
|
258
|
-
# @option access [String] :private_key
|
259
|
-
#
|
260
|
-
def archive!(access = {})
|
261
|
-
Api::Request.new do |request|
|
262
|
-
request[:access] = access
|
263
|
-
request[:method] = :PUT
|
264
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/archive"
|
265
|
-
end.execute!
|
266
|
-
end
|
267
|
-
|
268
|
-
#
|
269
|
-
# Changed in release 2.0.0
|
270
|
-
#
|
271
|
-
# Returns an array of fields for document per participant.
|
272
|
-
#
|
273
|
-
# @param [Hash] options
|
274
|
-
# @option options [String] :field Field GUID
|
275
|
-
# @param [Hash] access Access credentials
|
276
|
-
# @option access [String] :client_id
|
277
|
-
# @option access [String] :private_key
|
278
|
-
#
|
279
|
-
def get_fields!(options = {}, access = {})
|
280
|
-
|
281
|
-
api = Api::Request.new do |request|
|
282
|
-
request[:access] = access
|
283
|
-
request[:method] = :GET
|
284
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/fields"
|
285
|
-
end
|
286
|
-
api.add_params(options)
|
287
|
-
json = api.execute!
|
288
|
-
|
289
|
-
json[:fields].map do |field|
|
290
|
-
Signature::Field.new(field)
|
291
|
-
end
|
292
|
-
end
|
293
|
-
|
294
|
-
|
295
|
-
#
|
296
|
-
# Adds field for document.
|
297
|
-
#
|
298
|
-
# @example
|
299
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
300
|
-
# field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature }
|
301
|
-
# field.location = { location_x: 0.1, location_y: 0.1, page: 1 }
|
302
|
-
# document = form.documents!.first
|
303
|
-
# form.add_field! field, document
|
304
|
-
#
|
305
|
-
# @param [GroupDocs::Signature::Field] field
|
306
|
-
# @param [GroupDocs::Document] document
|
307
|
-
# @param [Hash] options
|
308
|
-
# @option options [Boolean] :force_new_field Set to true to force new field create
|
309
|
-
# @param [Hash] access Access credentials
|
310
|
-
# @option access [String] :client_id
|
311
|
-
# @option access [String] :private_key
|
312
|
-
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
313
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
314
|
-
# @raise [ArgumentError] if field does not specify location
|
315
|
-
#
|
316
|
-
def add_field!(field, document, opts = {}, access = {})
|
317
|
-
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
318
|
-
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
319
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
320
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
321
|
-
field.location or raise ArgumentError,
|
322
|
-
"You have to specify field location, received: #{field.location.inspect}"
|
323
|
-
|
324
|
-
opts[:force_new_field] = true if opts[:force_new_field].nil?
|
325
|
-
payload = field.to_hash # field itself
|
326
|
-
payload.merge!(field.location.to_hash) # location should added in plain view (i.e. not "location": {...})
|
327
|
-
payload.merge!(:forceNewField => opts[:force_new_field]) # create new field flag
|
328
|
-
|
329
|
-
Api::Request.new do |request|
|
330
|
-
request[:access] = access
|
331
|
-
request[:method] = :POST
|
332
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/field/#{field.id}"
|
333
|
-
request[:request_body] = payload
|
334
|
-
end.execute!
|
335
|
-
end
|
336
|
-
|
337
|
-
#
|
338
|
-
# Modifies field location.
|
339
|
-
#
|
340
|
-
# @example Modify field location in form
|
341
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
342
|
-
# document = form.documents!.first
|
343
|
-
# field = form.fields!(document).first
|
344
|
-
# location = field.locations.first
|
345
|
-
# location.x = 0.123
|
346
|
-
# location.y = 0.123
|
347
|
-
# location.page = 2
|
348
|
-
# form.modify_field_location! location, field, document
|
349
|
-
#
|
350
|
-
# @param [GroupDocs::Signature::Field::Location] location
|
351
|
-
# @param [GroupDocs::Signature::Field] field
|
352
|
-
# @param [GroupDocs::Document] document
|
353
|
-
# @param [Hash] access Access credentials
|
354
|
-
# @option access [String] :client_id
|
355
|
-
# @option access [String] :private_key
|
356
|
-
# @raise [ArgumentError] if location is not GroupDocs::Signature::Field::Location
|
357
|
-
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
358
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
359
|
-
#
|
360
|
-
def modify_field_location!(location, field, document, access = {})
|
361
|
-
location.is_a?(GroupDocs::Signature::Field::Location) or raise ArgumentError,
|
362
|
-
"Location should be GroupDocs::Signature::Field::Location object, received: #{location.inspect}"
|
363
|
-
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
364
|
-
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
365
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
366
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
367
|
-
|
368
|
-
Api::Request.new do |request|
|
369
|
-
request[:access] = access
|
370
|
-
request[:method] = :PUT
|
371
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields/#{field.id}/locations/#{location.id}"
|
372
|
-
request[:request_body] = location.to_hash
|
373
|
-
end.execute!
|
374
|
-
end
|
375
|
-
|
376
|
-
#
|
377
|
-
# Added in release 2.2.0
|
378
|
-
#
|
379
|
-
# Modifies field location.
|
380
|
-
#
|
381
|
-
# @example Modify field in form
|
382
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
383
|
-
# document = form.documents!.first
|
384
|
-
# field = form.get_fields!(document).first
|
385
|
-
# field.name = "New name"
|
386
|
-
# form.modify_field_location! location, field, document
|
387
|
-
#
|
388
|
-
# @param [GroupDocs::Signature::Field::Location] location
|
389
|
-
# @param [GroupDocs::Signature::Field] field
|
390
|
-
# @param [GroupDocs::Document] document
|
391
|
-
# @param [Hash] access Access credentials
|
392
|
-
# @option access [String] :client_id
|
393
|
-
# @option access [String] :private_key
|
394
|
-
# @raise [ArgumentError] if location is not GroupDocs::Signature::Field::Location
|
395
|
-
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
396
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
397
|
-
#
|
398
|
-
def modify_form_field!(field, document, access = {})
|
399
|
-
|
400
|
-
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
401
|
-
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
402
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
403
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
404
|
-
|
405
|
-
Api::Request.new do |request|
|
406
|
-
request[:access] = access
|
407
|
-
request[:method] = :PUT
|
408
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/field/#{field.id}"
|
409
|
-
request[:request_body] = field.to_hash
|
410
|
-
end.execute!
|
411
|
-
end
|
412
|
-
|
413
|
-
#
|
414
|
-
# Updates form adding fields from template.
|
415
|
-
#
|
416
|
-
# @param [GroupDocs::Signature::Template] template
|
417
|
-
# @param [Hash] access Access credentials
|
418
|
-
# @option access [String] :client_id
|
419
|
-
# @option access [String] :private_key
|
420
|
-
# @raise [ArgumentError] if template is not GroupDocs::Signature::Template
|
421
|
-
#
|
422
|
-
def update_from_template!(template, access = {})
|
423
|
-
template.is_a?(GroupDocs::Signature::Template) or raise ArgumentError,
|
424
|
-
"Template should be GroupDocs::Signature::Template object, received: #{template.inspect}"
|
425
|
-
|
426
|
-
Api::Request.new do |request|
|
427
|
-
request[:access] = access
|
428
|
-
request[:method] = :POST
|
429
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/templates/#{template.id}"
|
430
|
-
end.execute!
|
431
|
-
end
|
432
|
-
|
433
|
-
#
|
434
|
-
# Modify signature form document
|
435
|
-
#
|
436
|
-
# @example
|
437
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
438
|
-
# document = form.documents!.first
|
439
|
-
# field = form.fields!(document).first
|
440
|
-
# field.name = "Field"
|
441
|
-
# form.modify_field! field, document
|
442
|
-
#
|
443
|
-
#
|
444
|
-
# @param [GroupDocs::Document] document
|
445
|
-
# @param [Hash] options
|
446
|
-
# @option options [Integer] Order
|
447
|
-
# @option options [String] newDocumentGuid
|
448
|
-
# @param [Hash] access Access credentials
|
449
|
-
# @option access [String] :client_id
|
450
|
-
# @option access [String] :private_key
|
451
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
452
|
-
#
|
453
|
-
def modify_form_document!(document, options = {}, access = {})
|
454
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
455
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
456
|
-
|
457
|
-
Api::Request.new do |request|
|
458
|
-
request[:access] = access
|
459
|
-
request[:method] = :PUT
|
460
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/document/#{document.file.guid}/"
|
461
|
-
request[:request_body] = options
|
462
|
-
end.execute!
|
463
|
-
end
|
464
|
-
|
465
|
-
#
|
466
|
-
# Changed in release 1.5.8
|
467
|
-
#
|
468
|
-
# Downloads signed documents to given path.
|
469
|
-
# If there is only one file in form, it's saved as PDF.
|
470
|
-
# If there are two or more files in form, it's saved as ZIP.
|
471
|
-
#
|
472
|
-
# @param [String] path Directory to download file to
|
473
|
-
# @param [Hash] access Access credentials
|
474
|
-
# @option access [String] :client_id
|
475
|
-
# @option access [String] :private_key
|
476
|
-
# @return [String] path to file
|
477
|
-
#
|
478
|
-
def signed_documents!(path, access = {})
|
479
|
-
response = Api::Request.new do |request|
|
480
|
-
request[:access] = access
|
481
|
-
request[:method] = :DOWNLOAD
|
482
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/get"
|
483
|
-
end.execute!
|
484
|
-
|
485
|
-
filepath = "#{path}/#{name}.zip"
|
486
|
-
|
487
|
-
|
488
|
-
Object::File.open(filepath, 'wb') do |file|
|
489
|
-
file.write(response)
|
490
|
-
end
|
491
|
-
|
492
|
-
filepath
|
493
|
-
end
|
494
|
-
|
495
|
-
#
|
496
|
-
# Changed in release 1.5.8
|
497
|
-
#
|
498
|
-
# Public fill signature form.
|
499
|
-
#
|
500
|
-
# @param [String] form Form GUID
|
501
|
-
# @param [Hash] access Access credentials
|
502
|
-
# @option access [String] :client_id
|
503
|
-
# @option access [String] :private_key
|
504
|
-
# @return [Array]
|
505
|
-
#
|
506
|
-
def public_fill!(access = {})
|
507
|
-
Api::Request.new do |request|
|
508
|
-
request[:access] = access
|
509
|
-
request[:method] = :GET
|
510
|
-
request[:path] = "/signature/public/forms/#{id}/fill"
|
511
|
-
end.execute!
|
512
|
-
end
|
513
|
-
|
514
|
-
#
|
515
|
-
# Changed in release 1.5.8
|
516
|
-
#
|
517
|
-
# Public fill form field.
|
518
|
-
#
|
519
|
-
# @example Fill single line field
|
520
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
521
|
-
# document = form.documents!.first
|
522
|
-
# field = form.fields!(document).first
|
523
|
-
# fill_form = form.public_fill!
|
524
|
-
# participant = fill_form[:participant][:id]
|
525
|
-
# form.fill_field! "my_data", field, document, participant
|
526
|
-
#
|
527
|
-
# @example Fill signature field
|
528
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
529
|
-
# document = form.documents!.first
|
530
|
-
# field = form.fields!(document).first
|
531
|
-
# fill_form = form.public_fill!
|
532
|
-
# participant = fill_form[:participant][:id]
|
533
|
-
# signature = GroupDocs::Signature.get!.first
|
534
|
-
# form.fill_field! signature, field, document, participant
|
535
|
-
#
|
536
|
-
# @example Fill checkbox field
|
537
|
-
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
538
|
-
# document = form.documents!.first
|
539
|
-
# field = form.fields!(document).first
|
540
|
-
# fill_form = form.public_fill!
|
541
|
-
# participant = fill_form[:participant][:id]
|
542
|
-
# form.fill_field! false, field, document, participant
|
543
|
-
#
|
544
|
-
#
|
545
|
-
# @param [GroupDocs::Document] document Document GUID
|
546
|
-
# @param [String] participant Participant ID
|
547
|
-
# @param [GroupDocs::Signature::Field] field Field GUID
|
548
|
-
# @param [String] authentication Authentication signature
|
549
|
-
# @param [File Stream] value Data to be placed in field
|
550
|
-
# @param [Hash] access Access credentials
|
551
|
-
# @option access [String] :client_id
|
552
|
-
# @option access [String] :private_key
|
553
|
-
# @return [Array]
|
554
|
-
#
|
555
|
-
def public_fill_field!(value, field, document, participant, authentication, access = {})
|
556
|
-
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
557
|
-
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
558
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
559
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
560
|
-
|
561
|
-
api = Api::Request.new do |request|
|
562
|
-
request[:access] = access
|
563
|
-
request[:method] = :PUT
|
564
|
-
request[:path] = "/signature/public/forms/#{id}/documents/#{document.guid}/participant/#{participant}/field/#{field.id}"
|
565
|
-
request[:request_body] = value
|
566
|
-
request[:plain] = true
|
567
|
-
end
|
568
|
-
api.add_params(:participantAuthSignature => authentication)
|
569
|
-
json = api.execute!
|
570
|
-
Signature::Field.new(json[:field])
|
571
|
-
end
|
572
|
-
|
573
|
-
#
|
574
|
-
# Changed in release 1.7.0
|
575
|
-
#
|
576
|
-
# Public sign form.
|
577
|
-
#
|
578
|
-
# @param [Hash] settings
|
579
|
-
# @option settings [String] :authData (required)
|
580
|
-
# @option settings [String] :comment (required)
|
581
|
-
# @param [String] filepath Path to file to be uploaded
|
582
|
-
# @param [String] participant Participant GUID
|
583
|
-
# @param [String] authentication Authentication signature
|
584
|
-
# @param [String] participant_name Participant Name
|
585
|
-
# @param [Hash] access Access credentials
|
586
|
-
# @option access [String] :client_id
|
587
|
-
# @option access [String] :private_key
|
588
|
-
# @return [Array]
|
589
|
-
#
|
590
|
-
def sign!( filepath, participant, authentication, participant_name, settings = {}, access = {})
|
591
|
-
api = Api::Request.new do |request|
|
592
|
-
request[:access] = access
|
593
|
-
request[:method] = :PUT
|
594
|
-
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/sign"
|
595
|
-
request[:request_body] = Object::File.new(filepath, 'rb')
|
596
|
-
request[:request_body] = settings
|
597
|
-
|
598
|
-
end
|
599
|
-
api.add_params(:participantAuthSignature => authentication, :name => participant_name)
|
600
|
-
api.execute!
|
601
|
-
end
|
602
|
-
|
603
|
-
#
|
604
|
-
# Changed in release 1.5.8
|
605
|
-
#
|
606
|
-
#
|
607
|
-
# Get form fields for document in form per participant
|
608
|
-
#
|
609
|
-
# @param [Hash] options
|
610
|
-
# @option [String] :document Document GUID
|
611
|
-
# @option [String] :participant Participant GUID
|
612
|
-
# @param [Hash] access Access credentials
|
613
|
-
# @option access [String] :client_id
|
614
|
-
# @option access [String] :private_key
|
615
|
-
# @return [Array]
|
616
|
-
#
|
617
|
-
def public_fields!(options = {}, access = {})
|
618
|
-
api = Api::Request.new do |request|
|
619
|
-
request[:access] = access
|
620
|
-
request[:method] = :GET
|
621
|
-
request[:path] = "/signature/public/forms/#{id}/fields"
|
622
|
-
end
|
623
|
-
api.add_params(options)
|
624
|
-
json = api.execute!
|
625
|
-
|
626
|
-
json[:fields].map do |field|
|
627
|
-
Signature::Field.new(field)
|
628
|
-
end
|
629
|
-
end
|
630
|
-
|
631
|
-
#
|
632
|
-
# Changed in release 1.5.8
|
633
|
-
#
|
634
|
-
#
|
635
|
-
# Get signature form participant.
|
636
|
-
#
|
637
|
-
# @param [String] participant Participant GUID
|
638
|
-
# @param [Hash] access Access credentials
|
639
|
-
# @option access [String] :client_id
|
640
|
-
# @option access [String] :private_key
|
641
|
-
# @return [Array]
|
642
|
-
#
|
643
|
-
def participant!(participant, access = {})
|
644
|
-
json = Api::Request.new do |request|
|
645
|
-
request[:access] = access
|
646
|
-
request[:method] = :GET
|
647
|
-
request[:path] = "/signature/public/forms/#{form}/participants/#{participant}"
|
648
|
-
end.execute!
|
649
|
-
|
650
|
-
json[:participant]
|
651
|
-
end
|
652
|
-
|
653
|
-
#
|
654
|
-
# Changed in release 1.5.8
|
655
|
-
#
|
656
|
-
#
|
657
|
-
# Get signed form documents.
|
658
|
-
#
|
659
|
-
# @param [String] participant Participant GUID
|
660
|
-
# @param [Hash] access Access credentials
|
661
|
-
# @option access [String] :client_id
|
662
|
-
# @option access [String] :private_key
|
663
|
-
# @return [Array]
|
664
|
-
#
|
665
|
-
def public_signed_documents!(path, participant, access = {})
|
666
|
-
response = Api::Request.new do |request|
|
667
|
-
request[:access] = access
|
668
|
-
request[:method] = :DOWNLOAD
|
669
|
-
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/documents/get"
|
670
|
-
end.execute!
|
671
|
-
|
672
|
-
|
673
|
-
filepath = "#{path}/#{name}."
|
674
|
-
if documents!.size == 1
|
675
|
-
filepath << 'pdf'
|
676
|
-
else
|
677
|
-
filepath << 'zip'
|
678
|
-
end
|
679
|
-
|
680
|
-
Object::File.open(filepath, 'wb') do |file|
|
681
|
-
file.write(response)
|
682
|
-
end
|
683
|
-
|
684
|
-
filepath
|
685
|
-
end
|
686
|
-
|
687
|
-
#
|
688
|
-
# Added in release 1.7.0
|
689
|
-
#
|
690
|
-
# Update Form Participant.
|
691
|
-
#
|
692
|
-
# @param [String] form Form GUID
|
693
|
-
# @param [String] participant Participant GUID
|
694
|
-
# @param [String] authentication Authentication signature
|
695
|
-
# @param [String] participant_name Participant Name
|
696
|
-
# @param [Hash] access Access credentials
|
697
|
-
# @option access [String] :client_id
|
698
|
-
# @option access [String] :private_key
|
699
|
-
# @return [Array]
|
700
|
-
#
|
701
|
-
def update_partipicant!(participant, email, access = {})
|
702
|
-
api = Api::Request.new do |request|
|
703
|
-
request[:access] = access
|
704
|
-
request[:method] = :PUT
|
705
|
-
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}"
|
706
|
-
end
|
707
|
-
api.add_params(:email => email)
|
708
|
-
api.execute!
|
709
|
-
end
|
710
|
-
|
711
|
-
#
|
712
|
-
# Added in release 1.7.0
|
713
|
-
#
|
714
|
-
# Validate Particpiant Identity.
|
715
|
-
#
|
716
|
-
# @param [String] participant Participant GUID
|
717
|
-
# @param [String] code Code to be validated
|
718
|
-
# @param [Hash] access Access credentials
|
719
|
-
# @option access [String] :client_id
|
720
|
-
# @option access [String] :private_key
|
721
|
-
# @return [Array]
|
722
|
-
#
|
723
|
-
def validate_partipicant!(participant, code, access = {})
|
724
|
-
Api::Request.new do |request|
|
725
|
-
request[:access] = access
|
726
|
-
request[:method] = :GET
|
727
|
-
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/validationCode/#{code}"
|
728
|
-
end.execute!
|
729
|
-
end
|
730
|
-
|
731
|
-
#
|
732
|
-
# Added in release 1.7.0
|
733
|
-
#
|
734
|
-
# Get form fields for document in form per participant.
|
735
|
-
#
|
736
|
-
# @param [GroupDocs::Document] document
|
737
|
-
# @param [Hash] options
|
738
|
-
# @option options [String] :field Field GUID
|
739
|
-
# @param [Hash] access Access credentials
|
740
|
-
# @option access [String] :client_id
|
741
|
-
# @option access [String] :private_key
|
742
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
743
|
-
#
|
744
|
-
def document_fields!(document, options = {}, access = {})
|
745
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
746
|
-
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
747
|
-
|
748
|
-
api = Api::Request.new do |request|
|
749
|
-
request[:access] = access
|
750
|
-
request[:method] = :GET
|
751
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields"
|
752
|
-
end
|
753
|
-
api.add_params(options)
|
754
|
-
json = api.execute!
|
755
|
-
|
756
|
-
json[:fields].map do |field|
|
757
|
-
Signature::Field.new(field)
|
758
|
-
end
|
759
|
-
end
|
760
|
-
|
761
|
-
#
|
762
|
-
# Added in release 1.7.0
|
763
|
-
#
|
764
|
-
# Get form audit logs
|
765
|
-
#
|
766
|
-
# @param [Hash] options
|
767
|
-
# @option options [String] :field Field GUID
|
768
|
-
# @param [Hash] access Access credentials
|
769
|
-
# @option access [String] :client_id
|
770
|
-
# @option access [String] :private_key
|
771
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
772
|
-
#
|
773
|
-
def get_logs!(access = {})
|
774
|
-
|
775
|
-
Api::Request.new do |request|
|
776
|
-
request[:access] = access
|
777
|
-
request[:method] = :GET
|
778
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/logs"
|
779
|
-
end.execute!
|
780
|
-
end
|
781
|
-
|
782
|
-
#
|
783
|
-
# Added in release 1.8.0
|
784
|
-
#
|
785
|
-
# Get form participants
|
786
|
-
#
|
787
|
-
# @param [Hash] options
|
788
|
-
# @option options [String] :field Field GUID
|
789
|
-
# @param [Hash] access Access credentials
|
790
|
-
# @option access [String] :client_id
|
791
|
-
# @option access [String] :private_key
|
792
|
-
# @raise [ArgumentError] if document is not GroupDocs::Document
|
793
|
-
#
|
794
|
-
def get_participants!(access = {})
|
795
|
-
|
796
|
-
Api::Request.new do |request|
|
797
|
-
request[:access] = access
|
798
|
-
request[:method] = :GET
|
799
|
-
request[:path] = "/signature/{{client_id}}/forms/#{id}/participants"
|
800
|
-
end.execute!
|
801
|
-
end
|
802
|
-
|
803
|
-
end # Signature::Form
|
804
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Signature::Form < Api::Entity
|
3
|
+
|
4
|
+
include Api::Helpers::SignaturePublic
|
5
|
+
include Signature::EntityMethods
|
6
|
+
include Signature::DocumentMethods
|
7
|
+
include Signature::FieldMethods
|
8
|
+
extend Signature::ResourceMethods
|
9
|
+
|
10
|
+
# form doesn't have recipients
|
11
|
+
undef_method :assign_field!
|
12
|
+
|
13
|
+
STATUSES = {
|
14
|
+
:draft => -1,
|
15
|
+
:in_progress => 1,
|
16
|
+
:completed => 2,
|
17
|
+
:archived => 3,
|
18
|
+
}
|
19
|
+
|
20
|
+
#
|
21
|
+
# Returns a list of all forms.
|
22
|
+
#
|
23
|
+
# @param [Hash] options Hash of options
|
24
|
+
# @option options [Integer] :page Page to start with
|
25
|
+
# @option options [Integer] :records How many items to list
|
26
|
+
# @option options [Integer] :status_id Filter forms by status identifier
|
27
|
+
# @option options [String] :document Filter forms by document GUID
|
28
|
+
# @option options [String] :date Filter forms by date
|
29
|
+
# @option options [String] :name Filter forms by name
|
30
|
+
# @option options [String] :tag Filter forms by tag
|
31
|
+
# @param [Hash] access Access credentials
|
32
|
+
# @option access [String] :client_id
|
33
|
+
# @option access [String] :private_key
|
34
|
+
# @return [Array<GroupDocs::Signature::Form>]
|
35
|
+
#
|
36
|
+
def self.all!(options = {}, access = {})
|
37
|
+
status_id = options.delete(:status_id)
|
38
|
+
options[:statusId] = status_id if status_id
|
39
|
+
|
40
|
+
api = Api::Request.new do |request|
|
41
|
+
request[:access] = access
|
42
|
+
request[:method] = :GET
|
43
|
+
request[:path] = '/signature/{{client_id}}/forms'
|
44
|
+
end
|
45
|
+
api.add_params(options)
|
46
|
+
json = api.execute!
|
47
|
+
|
48
|
+
json[:forms].map do |form|
|
49
|
+
new(form)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
#
|
54
|
+
# Returns form by its identifier.
|
55
|
+
#
|
56
|
+
# @param [String] id
|
57
|
+
# @param [Hash] options
|
58
|
+
# @option options [Boolean] :public Defaults to false
|
59
|
+
# @param [Hash] access Access credentials
|
60
|
+
# @option access [String] :client_id
|
61
|
+
# @option access [String] :private_key
|
62
|
+
# @return [GroupDocs::Signature::Form]
|
63
|
+
#
|
64
|
+
def self.get!(id, options = {}, access = {})
|
65
|
+
if options[:public]
|
66
|
+
json = Api::Request.new do |request|
|
67
|
+
request[:access] = access
|
68
|
+
request[:method] = :GET
|
69
|
+
request[:path] = "/signature/public/forms/#{id}"
|
70
|
+
end.execute!
|
71
|
+
|
72
|
+
new(json[:form])
|
73
|
+
else
|
74
|
+
super(id, access)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# @attr [String] id
|
79
|
+
attr_accessor :id
|
80
|
+
# @attr [String] name
|
81
|
+
attr_accessor :name
|
82
|
+
# @attr [String] ownerGuid
|
83
|
+
attr_accessor :ownerGuid
|
84
|
+
# @attr [String] templateGuid
|
85
|
+
attr_accessor :templateGuid
|
86
|
+
# @attr [String] createdTimeStamp
|
87
|
+
attr_accessor :createdTimeStamp
|
88
|
+
# @attr [String] statusDateTime
|
89
|
+
attr_accessor :statusDateTime
|
90
|
+
# @attr [Integer] documentsCount
|
91
|
+
attr_accessor :documentsCount
|
92
|
+
# @attr [Integer] documentsPages
|
93
|
+
attr_accessor :documentsPages
|
94
|
+
# @attr [Integer] participantsCount
|
95
|
+
attr_accessor :participantsCount
|
96
|
+
# @attr [Array] fieldsInFinalFileName
|
97
|
+
attr_accessor :fieldsInFinalFileName
|
98
|
+
# @attr [Boolean] canParticipantDownloadForm
|
99
|
+
attr_accessor :canParticipantDownloadForm
|
100
|
+
# @attr [Symbol] status
|
101
|
+
attr_accessor :status
|
102
|
+
# @attr [String] waterMarkText
|
103
|
+
attr_accessor :waterMarkText
|
104
|
+
# @attr [String] waterMarkImage
|
105
|
+
attr_accessor :waterMarkImage
|
106
|
+
# @attr [Boolean] notifyOwnerOnSign
|
107
|
+
attr_accessor :notifyOwnerOnSign
|
108
|
+
|
109
|
+
#added in release 1.6.0
|
110
|
+
# @attr [Boolean] canParticipantPrintForm
|
111
|
+
attr_accessor :canParticipantPrintForm
|
112
|
+
|
113
|
+
|
114
|
+
# Human-readable accessors
|
115
|
+
alias_accessor :owner_guid, :ownerGuid
|
116
|
+
alias_accessor :template_guid, :templateGuid
|
117
|
+
alias_accessor :created_time_stamp, :createdTimeStamp
|
118
|
+
alias_accessor :status_date_time, :statusDateTime
|
119
|
+
alias_accessor :documents_count, :documentsCount
|
120
|
+
alias_accessor :documents_pages, :documentsPages
|
121
|
+
alias_accessor :participants_count, :participantsCount
|
122
|
+
alias_accessor :can_participant_download_form, :canParticipantDownloadForm
|
123
|
+
alias_accessor :water_mark_text, :waterMarkText
|
124
|
+
alias_accessor :water_mark_image, :waterMarkImage
|
125
|
+
alias_accessor :notify_owner_on_sign, :notifyOwnerOnSign
|
126
|
+
|
127
|
+
#added in release 1.6.0
|
128
|
+
alias_accessor :can_participant_print_form, :canParticipantPrintForm
|
129
|
+
|
130
|
+
#
|
131
|
+
# Converts status to human-readable format.
|
132
|
+
# @return [Symbol]
|
133
|
+
#
|
134
|
+
def status
|
135
|
+
STATUSES.invert[@status]
|
136
|
+
end
|
137
|
+
|
138
|
+
#
|
139
|
+
# Converts array of field names to machine-readable format.
|
140
|
+
# @param [Array<String>] fields
|
141
|
+
#
|
142
|
+
def fields_in_final_file_name=(fields)
|
143
|
+
if fields.is_a?(Array)
|
144
|
+
fields = fields.join(',')
|
145
|
+
end
|
146
|
+
|
147
|
+
@fieldsInFinalFileName = fields
|
148
|
+
end
|
149
|
+
|
150
|
+
#
|
151
|
+
# Converts field names to human-readable format.
|
152
|
+
# @return [Array<String>]
|
153
|
+
#
|
154
|
+
def fields_in_final_file_name
|
155
|
+
@fieldsInFinalFileName.split(',') if @fieldsInFinalFileName
|
156
|
+
end
|
157
|
+
|
158
|
+
#
|
159
|
+
# Creates form.
|
160
|
+
#
|
161
|
+
# @example
|
162
|
+
# form = GroupDocs::Signature::Form.new
|
163
|
+
# form.name = "Form"
|
164
|
+
# form.create!
|
165
|
+
#
|
166
|
+
# @param [Hash] options Hash of options
|
167
|
+
# @option options [String] :template_id Template GUID to create form from
|
168
|
+
# @option options [Integer] :assembly_id Questionnaire identifier to create form from
|
169
|
+
# @param [Hash] access Access credentials
|
170
|
+
# @option access [String] :client_id
|
171
|
+
# @option access [String] :private_key
|
172
|
+
# @raise [ArgumentError] if template is not GroupDocs::Signature::Template
|
173
|
+
#
|
174
|
+
def create!(options = {}, access = {})
|
175
|
+
#template_id = options.delete(:template_id)
|
176
|
+
#assembly_id = options.delete(:assembly_id)
|
177
|
+
#options[:templateId] = template_id if template_id
|
178
|
+
#options[:assemblyId] = assembly_id if assembly_id
|
179
|
+
|
180
|
+
api = Api::Request.new do |request|
|
181
|
+
request[:access] = access
|
182
|
+
request[:method] = :POST
|
183
|
+
request[:path] = '/signature/{{client_id}}/form'
|
184
|
+
request[:request_body] = to_hash
|
185
|
+
|
186
|
+
end
|
187
|
+
|
188
|
+
api.add_params(options.merge(:name => name))
|
189
|
+
json = api.execute!
|
190
|
+
|
191
|
+
self.id = json[:form][:id]
|
192
|
+
end
|
193
|
+
|
194
|
+
#
|
195
|
+
# Returns documents array.
|
196
|
+
#
|
197
|
+
# @param [Hash] options
|
198
|
+
# @option options [Boolean] :public Defaults to false
|
199
|
+
# @param [Hash] access Access credentials
|
200
|
+
# @option access [String] :client_id
|
201
|
+
# @option access [String] :private_key
|
202
|
+
# @return [Array<GroupDocs::Document>]
|
203
|
+
#
|
204
|
+
def documents!(options = {}, access = {})
|
205
|
+
client_id = client_id(options[:public])
|
206
|
+
|
207
|
+
json = Api::Request.new do |request|
|
208
|
+
request[:access] = access
|
209
|
+
request[:method] = :GET
|
210
|
+
request[:path] = "/signature/#{client_id}/forms/#{id}/documents"
|
211
|
+
end.execute!
|
212
|
+
|
213
|
+
json[:documents].map do |document|
|
214
|
+
id = document[:documentId] || document[:id]
|
215
|
+
file = Storage::File.new(:guid => id, :name => document[:name])
|
216
|
+
Document.new(document.merge(:file => file))
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
#
|
221
|
+
# Publishes form.
|
222
|
+
#
|
223
|
+
# @param [Hash] access Access credentials
|
224
|
+
# @option access [String] :client_id
|
225
|
+
# @option access [String] :private_key
|
226
|
+
# @param callbackUrl [Hash] Webhook Callback Url
|
227
|
+
# @option callbackUrl [String] :callbackUrl
|
228
|
+
#
|
229
|
+
def publish!(callbackUrl = {}, access = {})
|
230
|
+
Api::Request.new do |request|
|
231
|
+
request[:access] = access
|
232
|
+
request[:method] = :PUT
|
233
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/publish"
|
234
|
+
request[:request_body] = callbackUrl
|
235
|
+
end.execute!
|
236
|
+
end
|
237
|
+
|
238
|
+
#
|
239
|
+
# Completes form.
|
240
|
+
#
|
241
|
+
# @param [Hash] access Access credentials
|
242
|
+
# @option access [String] :client_id
|
243
|
+
# @option access [String] :private_key
|
244
|
+
#
|
245
|
+
def complete!(access = {})
|
246
|
+
Api::Request.new do |request|
|
247
|
+
request[:access] = access
|
248
|
+
request[:method] = :PUT
|
249
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/complete"
|
250
|
+
end.execute!
|
251
|
+
end
|
252
|
+
|
253
|
+
#
|
254
|
+
# Archives completed form.
|
255
|
+
#
|
256
|
+
# @param [Hash] access Access credentials
|
257
|
+
# @option access [String] :client_id
|
258
|
+
# @option access [String] :private_key
|
259
|
+
#
|
260
|
+
def archive!(access = {})
|
261
|
+
Api::Request.new do |request|
|
262
|
+
request[:access] = access
|
263
|
+
request[:method] = :PUT
|
264
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/archive"
|
265
|
+
end.execute!
|
266
|
+
end
|
267
|
+
|
268
|
+
#
|
269
|
+
# Changed in release 2.0.0
|
270
|
+
#
|
271
|
+
# Returns an array of fields for document per participant.
|
272
|
+
#
|
273
|
+
# @param [Hash] options
|
274
|
+
# @option options [String] :field Field GUID
|
275
|
+
# @param [Hash] access Access credentials
|
276
|
+
# @option access [String] :client_id
|
277
|
+
# @option access [String] :private_key
|
278
|
+
#
|
279
|
+
def get_fields!(options = {}, access = {})
|
280
|
+
|
281
|
+
api = Api::Request.new do |request|
|
282
|
+
request[:access] = access
|
283
|
+
request[:method] = :GET
|
284
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/fields"
|
285
|
+
end
|
286
|
+
api.add_params(options)
|
287
|
+
json = api.execute!
|
288
|
+
|
289
|
+
json[:fields].map do |field|
|
290
|
+
Signature::Field.new(field)
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
|
295
|
+
#
|
296
|
+
# Adds field for document.
|
297
|
+
#
|
298
|
+
# @example
|
299
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
300
|
+
# field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature }
|
301
|
+
# field.location = { location_x: 0.1, location_y: 0.1, page: 1 }
|
302
|
+
# document = form.documents!.first
|
303
|
+
# form.add_field! field, document
|
304
|
+
#
|
305
|
+
# @param [GroupDocs::Signature::Field] field
|
306
|
+
# @param [GroupDocs::Document] document
|
307
|
+
# @param [Hash] options
|
308
|
+
# @option options [Boolean] :force_new_field Set to true to force new field create
|
309
|
+
# @param [Hash] access Access credentials
|
310
|
+
# @option access [String] :client_id
|
311
|
+
# @option access [String] :private_key
|
312
|
+
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
313
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
314
|
+
# @raise [ArgumentError] if field does not specify location
|
315
|
+
#
|
316
|
+
def add_field!(field, document, opts = {}, access = {})
|
317
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
318
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
319
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
320
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
321
|
+
field.location or raise ArgumentError,
|
322
|
+
"You have to specify field location, received: #{field.location.inspect}"
|
323
|
+
|
324
|
+
opts[:force_new_field] = true if opts[:force_new_field].nil?
|
325
|
+
payload = field.to_hash # field itself
|
326
|
+
payload.merge!(field.location.to_hash) # location should added in plain view (i.e. not "location": {...})
|
327
|
+
payload.merge!(:forceNewField => opts[:force_new_field]) # create new field flag
|
328
|
+
|
329
|
+
Api::Request.new do |request|
|
330
|
+
request[:access] = access
|
331
|
+
request[:method] = :POST
|
332
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/field/#{field.id}"
|
333
|
+
request[:request_body] = payload
|
334
|
+
end.execute!
|
335
|
+
end
|
336
|
+
|
337
|
+
#
|
338
|
+
# Modifies field location.
|
339
|
+
#
|
340
|
+
# @example Modify field location in form
|
341
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
342
|
+
# document = form.documents!.first
|
343
|
+
# field = form.fields!(document).first
|
344
|
+
# location = field.locations.first
|
345
|
+
# location.x = 0.123
|
346
|
+
# location.y = 0.123
|
347
|
+
# location.page = 2
|
348
|
+
# form.modify_field_location! location, field, document
|
349
|
+
#
|
350
|
+
# @param [GroupDocs::Signature::Field::Location] location
|
351
|
+
# @param [GroupDocs::Signature::Field] field
|
352
|
+
# @param [GroupDocs::Document] document
|
353
|
+
# @param [Hash] access Access credentials
|
354
|
+
# @option access [String] :client_id
|
355
|
+
# @option access [String] :private_key
|
356
|
+
# @raise [ArgumentError] if location is not GroupDocs::Signature::Field::Location
|
357
|
+
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
358
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
359
|
+
#
|
360
|
+
def modify_field_location!(location, field, document, access = {})
|
361
|
+
location.is_a?(GroupDocs::Signature::Field::Location) or raise ArgumentError,
|
362
|
+
"Location should be GroupDocs::Signature::Field::Location object, received: #{location.inspect}"
|
363
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
364
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
365
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
366
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
367
|
+
|
368
|
+
Api::Request.new do |request|
|
369
|
+
request[:access] = access
|
370
|
+
request[:method] = :PUT
|
371
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields/#{field.id}/locations/#{location.id}"
|
372
|
+
request[:request_body] = location.to_hash
|
373
|
+
end.execute!
|
374
|
+
end
|
375
|
+
|
376
|
+
#
|
377
|
+
# Added in release 2.2.0
|
378
|
+
#
|
379
|
+
# Modifies field location.
|
380
|
+
#
|
381
|
+
# @example Modify field in form
|
382
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
383
|
+
# document = form.documents!.first
|
384
|
+
# field = form.get_fields!(document).first
|
385
|
+
# field.name = "New name"
|
386
|
+
# form.modify_field_location! location, field, document
|
387
|
+
#
|
388
|
+
# @param [GroupDocs::Signature::Field::Location] location
|
389
|
+
# @param [GroupDocs::Signature::Field] field
|
390
|
+
# @param [GroupDocs::Document] document
|
391
|
+
# @param [Hash] access Access credentials
|
392
|
+
# @option access [String] :client_id
|
393
|
+
# @option access [String] :private_key
|
394
|
+
# @raise [ArgumentError] if location is not GroupDocs::Signature::Field::Location
|
395
|
+
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
396
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
397
|
+
#
|
398
|
+
def modify_form_field!(field, document, access = {})
|
399
|
+
|
400
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
401
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
402
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
403
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
404
|
+
|
405
|
+
Api::Request.new do |request|
|
406
|
+
request[:access] = access
|
407
|
+
request[:method] = :PUT
|
408
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/field/#{field.id}"
|
409
|
+
request[:request_body] = field.to_hash
|
410
|
+
end.execute!
|
411
|
+
end
|
412
|
+
|
413
|
+
#
|
414
|
+
# Updates form adding fields from template.
|
415
|
+
#
|
416
|
+
# @param [GroupDocs::Signature::Template] template
|
417
|
+
# @param [Hash] access Access credentials
|
418
|
+
# @option access [String] :client_id
|
419
|
+
# @option access [String] :private_key
|
420
|
+
# @raise [ArgumentError] if template is not GroupDocs::Signature::Template
|
421
|
+
#
|
422
|
+
def update_from_template!(template, access = {})
|
423
|
+
template.is_a?(GroupDocs::Signature::Template) or raise ArgumentError,
|
424
|
+
"Template should be GroupDocs::Signature::Template object, received: #{template.inspect}"
|
425
|
+
|
426
|
+
Api::Request.new do |request|
|
427
|
+
request[:access] = access
|
428
|
+
request[:method] = :POST
|
429
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/templates/#{template.id}"
|
430
|
+
end.execute!
|
431
|
+
end
|
432
|
+
|
433
|
+
#
|
434
|
+
# Modify signature form document
|
435
|
+
#
|
436
|
+
# @example
|
437
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
438
|
+
# document = form.documents!.first
|
439
|
+
# field = form.fields!(document).first
|
440
|
+
# field.name = "Field"
|
441
|
+
# form.modify_field! field, document
|
442
|
+
#
|
443
|
+
#
|
444
|
+
# @param [GroupDocs::Document] document
|
445
|
+
# @param [Hash] options
|
446
|
+
# @option options [Integer] Order
|
447
|
+
# @option options [String] newDocumentGuid
|
448
|
+
# @param [Hash] access Access credentials
|
449
|
+
# @option access [String] :client_id
|
450
|
+
# @option access [String] :private_key
|
451
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
452
|
+
#
|
453
|
+
def modify_form_document!(document, options = {}, access = {})
|
454
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
455
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
456
|
+
|
457
|
+
Api::Request.new do |request|
|
458
|
+
request[:access] = access
|
459
|
+
request[:method] = :PUT
|
460
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/document/#{document.file.guid}/"
|
461
|
+
request[:request_body] = options
|
462
|
+
end.execute!
|
463
|
+
end
|
464
|
+
|
465
|
+
#
|
466
|
+
# Changed in release 1.5.8
|
467
|
+
#
|
468
|
+
# Downloads signed documents to given path.
|
469
|
+
# If there is only one file in form, it's saved as PDF.
|
470
|
+
# If there are two or more files in form, it's saved as ZIP.
|
471
|
+
#
|
472
|
+
# @param [String] path Directory to download file to
|
473
|
+
# @param [Hash] access Access credentials
|
474
|
+
# @option access [String] :client_id
|
475
|
+
# @option access [String] :private_key
|
476
|
+
# @return [String] path to file
|
477
|
+
#
|
478
|
+
def signed_documents!(path, access = {})
|
479
|
+
response = Api::Request.new do |request|
|
480
|
+
request[:access] = access
|
481
|
+
request[:method] = :DOWNLOAD
|
482
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/get"
|
483
|
+
end.execute!
|
484
|
+
|
485
|
+
filepath = "#{path}/#{name}.zip"
|
486
|
+
|
487
|
+
|
488
|
+
Object::File.open(filepath, 'wb') do |file|
|
489
|
+
file.write(response)
|
490
|
+
end
|
491
|
+
|
492
|
+
filepath
|
493
|
+
end
|
494
|
+
|
495
|
+
#
|
496
|
+
# Changed in release 1.5.8
|
497
|
+
#
|
498
|
+
# Public fill signature form.
|
499
|
+
#
|
500
|
+
# @param [String] form Form GUID
|
501
|
+
# @param [Hash] access Access credentials
|
502
|
+
# @option access [String] :client_id
|
503
|
+
# @option access [String] :private_key
|
504
|
+
# @return [Array]
|
505
|
+
#
|
506
|
+
def public_fill!(access = {})
|
507
|
+
Api::Request.new do |request|
|
508
|
+
request[:access] = access
|
509
|
+
request[:method] = :GET
|
510
|
+
request[:path] = "/signature/public/forms/#{id}/fill"
|
511
|
+
end.execute!
|
512
|
+
end
|
513
|
+
|
514
|
+
#
|
515
|
+
# Changed in release 1.5.8
|
516
|
+
#
|
517
|
+
# Public fill form field.
|
518
|
+
#
|
519
|
+
# @example Fill single line field
|
520
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
521
|
+
# document = form.documents!.first
|
522
|
+
# field = form.fields!(document).first
|
523
|
+
# fill_form = form.public_fill!
|
524
|
+
# participant = fill_form[:participant][:id]
|
525
|
+
# form.fill_field! "my_data", field, document, participant
|
526
|
+
#
|
527
|
+
# @example Fill signature field
|
528
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
529
|
+
# document = form.documents!.first
|
530
|
+
# field = form.fields!(document).first
|
531
|
+
# fill_form = form.public_fill!
|
532
|
+
# participant = fill_form[:participant][:id]
|
533
|
+
# signature = GroupDocs::Signature.get!.first
|
534
|
+
# form.fill_field! signature, field, document, participant
|
535
|
+
#
|
536
|
+
# @example Fill checkbox field
|
537
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
538
|
+
# document = form.documents!.first
|
539
|
+
# field = form.fields!(document).first
|
540
|
+
# fill_form = form.public_fill!
|
541
|
+
# participant = fill_form[:participant][:id]
|
542
|
+
# form.fill_field! false, field, document, participant
|
543
|
+
#
|
544
|
+
#
|
545
|
+
# @param [GroupDocs::Document] document Document GUID
|
546
|
+
# @param [String] participant Participant ID
|
547
|
+
# @param [GroupDocs::Signature::Field] field Field GUID
|
548
|
+
# @param [String] authentication Authentication signature
|
549
|
+
# @param [File Stream] value Data to be placed in field
|
550
|
+
# @param [Hash] access Access credentials
|
551
|
+
# @option access [String] :client_id
|
552
|
+
# @option access [String] :private_key
|
553
|
+
# @return [Array]
|
554
|
+
#
|
555
|
+
def public_fill_field!(value, field, document, participant, authentication, access = {})
|
556
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
557
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
558
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
559
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
560
|
+
|
561
|
+
api = Api::Request.new do |request|
|
562
|
+
request[:access] = access
|
563
|
+
request[:method] = :PUT
|
564
|
+
request[:path] = "/signature/public/forms/#{id}/documents/#{document.guid}/participant/#{participant}/field/#{field.id}"
|
565
|
+
request[:request_body] = value
|
566
|
+
request[:plain] = true
|
567
|
+
end
|
568
|
+
api.add_params(:participantAuthSignature => authentication)
|
569
|
+
json = api.execute!
|
570
|
+
Signature::Field.new(json[:field])
|
571
|
+
end
|
572
|
+
|
573
|
+
#
|
574
|
+
# Changed in release 1.7.0
|
575
|
+
#
|
576
|
+
# Public sign form.
|
577
|
+
#
|
578
|
+
# @param [Hash] settings
|
579
|
+
# @option settings [String] :authData (required)
|
580
|
+
# @option settings [String] :comment (required)
|
581
|
+
# @param [String] filepath Path to file to be uploaded
|
582
|
+
# @param [String] participant Participant GUID
|
583
|
+
# @param [String] authentication Authentication signature
|
584
|
+
# @param [String] participant_name Participant Name
|
585
|
+
# @param [Hash] access Access credentials
|
586
|
+
# @option access [String] :client_id
|
587
|
+
# @option access [String] :private_key
|
588
|
+
# @return [Array]
|
589
|
+
#
|
590
|
+
def sign!( filepath, participant, authentication, participant_name, settings = {}, access = {})
|
591
|
+
api = Api::Request.new do |request|
|
592
|
+
request[:access] = access
|
593
|
+
request[:method] = :PUT
|
594
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/sign"
|
595
|
+
request[:request_body] = Object::File.new(filepath, 'rb')
|
596
|
+
request[:request_body] = settings
|
597
|
+
|
598
|
+
end
|
599
|
+
api.add_params(:participantAuthSignature => authentication, :name => participant_name)
|
600
|
+
api.execute!
|
601
|
+
end
|
602
|
+
|
603
|
+
#
|
604
|
+
# Changed in release 1.5.8
|
605
|
+
#
|
606
|
+
#
|
607
|
+
# Get form fields for document in form per participant
|
608
|
+
#
|
609
|
+
# @param [Hash] options
|
610
|
+
# @option [String] :document Document GUID
|
611
|
+
# @option [String] :participant Participant GUID
|
612
|
+
# @param [Hash] access Access credentials
|
613
|
+
# @option access [String] :client_id
|
614
|
+
# @option access [String] :private_key
|
615
|
+
# @return [Array]
|
616
|
+
#
|
617
|
+
def public_fields!(options = {}, access = {})
|
618
|
+
api = Api::Request.new do |request|
|
619
|
+
request[:access] = access
|
620
|
+
request[:method] = :GET
|
621
|
+
request[:path] = "/signature/public/forms/#{id}/fields"
|
622
|
+
end
|
623
|
+
api.add_params(options)
|
624
|
+
json = api.execute!
|
625
|
+
|
626
|
+
json[:fields].map do |field|
|
627
|
+
Signature::Field.new(field)
|
628
|
+
end
|
629
|
+
end
|
630
|
+
|
631
|
+
#
|
632
|
+
# Changed in release 1.5.8
|
633
|
+
#
|
634
|
+
#
|
635
|
+
# Get signature form participant.
|
636
|
+
#
|
637
|
+
# @param [String] participant Participant GUID
|
638
|
+
# @param [Hash] access Access credentials
|
639
|
+
# @option access [String] :client_id
|
640
|
+
# @option access [String] :private_key
|
641
|
+
# @return [Array]
|
642
|
+
#
|
643
|
+
def participant!(participant, access = {})
|
644
|
+
json = Api::Request.new do |request|
|
645
|
+
request[:access] = access
|
646
|
+
request[:method] = :GET
|
647
|
+
request[:path] = "/signature/public/forms/#{form}/participants/#{participant}"
|
648
|
+
end.execute!
|
649
|
+
|
650
|
+
json[:participant]
|
651
|
+
end
|
652
|
+
|
653
|
+
#
|
654
|
+
# Changed in release 1.5.8
|
655
|
+
#
|
656
|
+
#
|
657
|
+
# Get signed form documents.
|
658
|
+
#
|
659
|
+
# @param [String] participant Participant GUID
|
660
|
+
# @param [Hash] access Access credentials
|
661
|
+
# @option access [String] :client_id
|
662
|
+
# @option access [String] :private_key
|
663
|
+
# @return [Array]
|
664
|
+
#
|
665
|
+
def public_signed_documents!(path, participant, access = {})
|
666
|
+
response = Api::Request.new do |request|
|
667
|
+
request[:access] = access
|
668
|
+
request[:method] = :DOWNLOAD
|
669
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/documents/get"
|
670
|
+
end.execute!
|
671
|
+
|
672
|
+
|
673
|
+
filepath = "#{path}/#{name}."
|
674
|
+
if documents!.size == 1
|
675
|
+
filepath << 'pdf'
|
676
|
+
else
|
677
|
+
filepath << 'zip'
|
678
|
+
end
|
679
|
+
|
680
|
+
Object::File.open(filepath, 'wb') do |file|
|
681
|
+
file.write(response)
|
682
|
+
end
|
683
|
+
|
684
|
+
filepath
|
685
|
+
end
|
686
|
+
|
687
|
+
#
|
688
|
+
# Added in release 1.7.0
|
689
|
+
#
|
690
|
+
# Update Form Participant.
|
691
|
+
#
|
692
|
+
# @param [String] form Form GUID
|
693
|
+
# @param [String] participant Participant GUID
|
694
|
+
# @param [String] authentication Authentication signature
|
695
|
+
# @param [String] participant_name Participant Name
|
696
|
+
# @param [Hash] access Access credentials
|
697
|
+
# @option access [String] :client_id
|
698
|
+
# @option access [String] :private_key
|
699
|
+
# @return [Array]
|
700
|
+
#
|
701
|
+
def update_partipicant!(participant, email, access = {})
|
702
|
+
api = Api::Request.new do |request|
|
703
|
+
request[:access] = access
|
704
|
+
request[:method] = :PUT
|
705
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}"
|
706
|
+
end
|
707
|
+
api.add_params(:email => email)
|
708
|
+
api.execute!
|
709
|
+
end
|
710
|
+
|
711
|
+
#
|
712
|
+
# Added in release 1.7.0
|
713
|
+
#
|
714
|
+
# Validate Particpiant Identity.
|
715
|
+
#
|
716
|
+
# @param [String] participant Participant GUID
|
717
|
+
# @param [String] code Code to be validated
|
718
|
+
# @param [Hash] access Access credentials
|
719
|
+
# @option access [String] :client_id
|
720
|
+
# @option access [String] :private_key
|
721
|
+
# @return [Array]
|
722
|
+
#
|
723
|
+
def validate_partipicant!(participant, code, access = {})
|
724
|
+
Api::Request.new do |request|
|
725
|
+
request[:access] = access
|
726
|
+
request[:method] = :GET
|
727
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/validationCode/#{code}"
|
728
|
+
end.execute!
|
729
|
+
end
|
730
|
+
|
731
|
+
#
|
732
|
+
# Added in release 1.7.0
|
733
|
+
#
|
734
|
+
# Get form fields for document in form per participant.
|
735
|
+
#
|
736
|
+
# @param [GroupDocs::Document] document
|
737
|
+
# @param [Hash] options
|
738
|
+
# @option options [String] :field Field GUID
|
739
|
+
# @param [Hash] access Access credentials
|
740
|
+
# @option access [String] :client_id
|
741
|
+
# @option access [String] :private_key
|
742
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
743
|
+
#
|
744
|
+
def document_fields!(document, options = {}, access = {})
|
745
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
746
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
747
|
+
|
748
|
+
api = Api::Request.new do |request|
|
749
|
+
request[:access] = access
|
750
|
+
request[:method] = :GET
|
751
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields"
|
752
|
+
end
|
753
|
+
api.add_params(options)
|
754
|
+
json = api.execute!
|
755
|
+
|
756
|
+
json[:fields].map do |field|
|
757
|
+
Signature::Field.new(field)
|
758
|
+
end
|
759
|
+
end
|
760
|
+
|
761
|
+
#
|
762
|
+
# Added in release 1.7.0
|
763
|
+
#
|
764
|
+
# Get form audit logs
|
765
|
+
#
|
766
|
+
# @param [Hash] options
|
767
|
+
# @option options [String] :field Field GUID
|
768
|
+
# @param [Hash] access Access credentials
|
769
|
+
# @option access [String] :client_id
|
770
|
+
# @option access [String] :private_key
|
771
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
772
|
+
#
|
773
|
+
def get_logs!(access = {})
|
774
|
+
|
775
|
+
Api::Request.new do |request|
|
776
|
+
request[:access] = access
|
777
|
+
request[:method] = :GET
|
778
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/logs"
|
779
|
+
end.execute!
|
780
|
+
end
|
781
|
+
|
782
|
+
#
|
783
|
+
# Added in release 1.8.0
|
784
|
+
#
|
785
|
+
# Get form participants
|
786
|
+
#
|
787
|
+
# @param [Hash] options
|
788
|
+
# @option options [String] :field Field GUID
|
789
|
+
# @param [Hash] access Access credentials
|
790
|
+
# @option access [String] :client_id
|
791
|
+
# @option access [String] :private_key
|
792
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
793
|
+
#
|
794
|
+
def get_participants!(access = {})
|
795
|
+
|
796
|
+
Api::Request.new do |request|
|
797
|
+
request[:access] = access
|
798
|
+
request[:method] = :GET
|
799
|
+
request[:path] = "/signature/{{client_id}}/forms/#{id}/participants"
|
800
|
+
end.execute!
|
801
|
+
end
|
802
|
+
|
803
|
+
end # Signature::Form
|
804
|
+
end # GroupDocs
|