Class: GroupDocs::Signature::Form

Inherits:
Api::Entity show all
Extended by:
ResourceMethods
Includes:
Api::Helpers::SignaturePublic, DocumentMethods, EntityMethods, FieldMethods
Defined in:
lib/groupdocs/signature/form.rb

Constant Summary collapse

STATUSES =
{
  :draft       => -1,
  :in_progress =>  1,
  :completed   =>  2,
  :archived    =>  3,
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ResourceMethods

resources!

Methods included from FieldMethods

#assign_field!, #delete_field!, #delete_field_location!, #modify_field!

Methods included from DocumentMethods

#add_document!, #remove_document!, #rename_document!

Methods included from EntityMethods

#delete!, included, #modify!, #rename!

Methods inherited from Api::Entity

#initialize, #inspect, #to_hash

Methods included from Api::Helpers::Accessor

#alias_accessor

Constructor Details

This class inherits a constructor from GroupDocs::Api::Entity

Instance Attribute Details

#canParticipantDownloadFormObject



99
100
101
# File 'lib/groupdocs/signature/form.rb', line 99

def canParticipantDownloadForm
  @canParticipantDownloadForm
end

#canParticipantPrintFormObject

added in release 1.6.0



111
112
113
# File 'lib/groupdocs/signature/form.rb', line 111

def canParticipantPrintForm
  @canParticipantPrintForm
end

#createdTimeStampObject



87
88
89
# File 'lib/groupdocs/signature/form.rb', line 87

def createdTimeStamp
  @createdTimeStamp
end

#documentsCountObject



91
92
93
# File 'lib/groupdocs/signature/form.rb', line 91

def documentsCount
  @documentsCount
end

#documentsPagesObject



93
94
95
# File 'lib/groupdocs/signature/form.rb', line 93

def documentsPages
  @documentsPages
end

#fieldsInFinalFileNameObject



97
98
99
# File 'lib/groupdocs/signature/form.rb', line 97

def fieldsInFinalFileName
  @fieldsInFinalFileName
end

#idObject



79
80
81
# File 'lib/groupdocs/signature/form.rb', line 79

def id
  @id
end

#nameObject



81
82
83
# File 'lib/groupdocs/signature/form.rb', line 81

def name
  @name
end

#notifyOwnerOnSignObject



107
108
109
# File 'lib/groupdocs/signature/form.rb', line 107

def notifyOwnerOnSign
  @notifyOwnerOnSign
end

#ownerGuidObject



83
84
85
# File 'lib/groupdocs/signature/form.rb', line 83

def ownerGuid
  @ownerGuid
end

#participantsCountObject



95
96
97
# File 'lib/groupdocs/signature/form.rb', line 95

def participantsCount
  @participantsCount
end

#statusSymbol

Converts status to human-readable format.

Returns:

  • (Symbol)


101
102
103
# File 'lib/groupdocs/signature/form.rb', line 101

def status
  @status
end

#statusDateTimeObject



89
90
91
# File 'lib/groupdocs/signature/form.rb', line 89

def statusDateTime
  @statusDateTime
end

#templateGuidObject



85
86
87
# File 'lib/groupdocs/signature/form.rb', line 85

def templateGuid
  @templateGuid
end

#waterMarkImageObject



105
106
107
# File 'lib/groupdocs/signature/form.rb', line 105

def waterMarkImage
  @waterMarkImage
end

#waterMarkTextObject



103
104
105
# File 'lib/groupdocs/signature/form.rb', line 103

def waterMarkText
  @waterMarkText
end

Class Method Details

.all!(options = {}, access = {}) ⇒ Array<GroupDocs::Signature::Form>

Returns a list of all forms.

Parameters:

  • options (Hash) (defaults to: {})

    Hash of options

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :page (Integer)

    Page to start with

  • :records (Integer)

    How many items to list

  • :status_id (Integer)

    Filter forms by status identifier

  • :document (String)

    Filter forms by document GUID

  • :date (String)

    Filter forms by date

  • :name (String)

    Filter forms by name

  • :tag (String)

    Filter forms by tag

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/groupdocs/signature/form.rb', line 36

def self.all!(options = {}, access = {})
  status_id = options.delete(:status_id)
  options[:statusId] = status_id if status_id

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = '/signature/{{client_id}}/forms'
  end
  api.add_params(options)
  json = api.execute!

  json[:forms].map do |form|
    new(form)
  end
end

.get!(id, options = {}, access = {}) ⇒ GroupDocs::Signature::Form

Returns form by its identifier.

Parameters:

  • id (String)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :public (Boolean)

    Defaults to false

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/groupdocs/signature/form.rb', line 64

def self.get!(id, options = {}, access = {})
  if options[:public]
    json = Api::Request.new do |request|
      request[:access] = access
      request[:method] = :GET
      request[:path] = "/signature/public/forms/#{id}"
    end.execute!

    new(json[:form])
  else
    super(id, access)
  end
end

Instance Method Details

#add_field!(field, document, opts = {}, access = {}) ⇒ Object

Adds field for document.

Examples:

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature }
field.location = { location_x: 0.1, location_y: 0.1, page: 1 }
document = form.documents!.first
form.add_field! field, document

Parameters:

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if field is not GroupDocs::Signature::Field

  • (ArgumentError)

    if document is not GroupDocs::Document

  • (ArgumentError)

    if field does not specify location



318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/groupdocs/signature/form.rb', line 318

def add_field!(field, document, opts = {}, access = {})
  field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
    "Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
    "Document should be GroupDocs::Document object, received: #{document.inspect}"
  field.location or raise ArgumentError,
    "You have to specify field location, received: #{field.location.inspect}"

  opts[:force_new_field] = true if opts[:force_new_field].nil?
  payload = field.to_hash # field itself
  payload.merge!(field.location.to_hash) # location should added in plain view (i.e. not "location": {...})
  payload.merge!(:forceNewField => opts[:force_new_field]) # create new field flag

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/field/#{field.id}"
    request[:request_body] = payload
  end.execute!
end

#archive!(access = {}) ⇒ Object

Archives completed form.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


260
261
262
263
264
265
266
# File 'lib/groupdocs/signature/form.rb', line 260

def archive!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/{{client_id}}/forms/#{id}/archive"
  end.execute!
end

#complete!(access = {}) ⇒ Object

Completes form.

Parameters:

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)


245
246
247
248
249
250
251
# File 'lib/groupdocs/signature/form.rb', line 245

def complete!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/{{client_id}}/forms/#{id}/complete"
  end.execute!
end

#create!(options = {}, access = {}) ⇒ Object

Creates form.

Examples:

form = GroupDocs::Signature::Form.new
form.name = "Form"
form.create!

Parameters:

  • options (Hash) (defaults to: {})

    Hash of options

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :template_id (String)

    Template GUID to create form from

  • :assembly_id (Integer)

    Questionnaire identifier to create form from

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if template is not GroupDocs::Signature::Template



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/groupdocs/signature/form.rb', line 174

def create!(options = {}, access = {})
  #template_id = options.delete(:template_id)
  #assembly_id = options.delete(:assembly_id)
  #options[:templateId] = template_id if template_id
  #options[:assemblyId] = assembly_id if assembly_id

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = '/signature/{{client_id}}/form'
    request[:request_body] = to_hash

  end

  api.add_params(options.merge(:name => name))
  json = api.execute!

  self.id = json[:form][:id]
end

#document_fields!(document, options = {}, access = {}) ⇒ Object

Added in release 1.7.0

Get form fields for document in form per participant.

Parameters:

  • document (GroupDocs::Document)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :field (String)

    Field GUID

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
# File 'lib/groupdocs/signature/form.rb', line 709

def document_fields!(document, options = {}, access = {})
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
                                               "Document should be GroupDocs::Document object, received: #{document.inspect}"

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields"
  end
  api.add_params(options)
  json = api.execute!

  json[:fields].map do |field|
    Signature::Field.new(field)
  end
end

#documents!(options = {}, access = {}) ⇒ Array<GroupDocs::Document>

Returns documents array.

Parameters:

  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :public (Boolean)

    Defaults to false

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:



204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/groupdocs/signature/form.rb', line 204

def documents!(options = {}, access = {})
  client_id = client_id(options[:public])

  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/#{client_id}/forms/#{id}/documents"
  end.execute!

  json[:documents].map do |document|
    id = document[:documentId] || document[:id]
    file = Storage::File.new(:guid => id, :name => document[:name])
    Document.new(document.merge(:file => file))
  end
end

#fields!(options = {}, access = {}) ⇒ Object

Changed in release 1.7.0

Returns an array of fields for document per participant.

Parameters:

  • document (GroupDocs::Document)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • :field (String)

    Field GUID

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



281
282
283
284
285
286
287
288
289
290
291
292
293
294
# File 'lib/groupdocs/signature/form.rb', line 281

def fields!(options = {}, access = {})

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/{{client_id}}/forms/#{id}/fields"
  end
  api.add_params(options)
  json = api.execute!

  json[:fields].map do |field|
    Signature::Field.new(field)
  end
end

#fields_in_final_file_nameArray<String>

Converts field names to human-readable format.

Returns:

  • (Array<String>)


154
155
156
# File 'lib/groupdocs/signature/form.rb', line 154

def fields_in_final_file_name
  @fieldsInFinalFileName.split(',') if @fieldsInFinalFileName
end

#fields_in_final_file_name=(fields) ⇒ Object

Converts array of field names to machine-readable format.

Parameters:

  • fields (Array<String>)


142
143
144
145
146
147
148
# File 'lib/groupdocs/signature/form.rb', line 142

def fields_in_final_file_name=(fields)
  if fields.is_a?(Array)
    fields = fields.join(',')
  end

  @fieldsInFinalFileName = fields
end

#get_logs!(access = {}) ⇒ Object

Added in release 1.7.0

Get form audit logs

Parameters:

  • options (Hash)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



738
739
740
741
742
743
744
745
# File 'lib/groupdocs/signature/form.rb', line 738

def get_logs!(access = {})

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/{{client_id}}/forms/#{id}/logs"
  end.execute!
end

#get_participants!(access = {}) ⇒ Object

Added in release 1.8.0

Get form participants

Parameters:

  • options (Hash)
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



759
760
761
762
763
764
765
766
# File 'lib/groupdocs/signature/form.rb', line 759

def get_participants!(access = {})

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/{{client_id}}/forms/#{id}/participants"
  end.execute!
end

#modify_field_location!(location, field, document, access = {}) ⇒ Object

Modifies field location.

Examples:

Modify field location in template

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = form.documents!.first
field = form.fields!(document).first
location = field.locations.first
location.x = 0.123
location.y = 0.123
location.page = 2
form.modify_field_location! location, field, document

Parameters:

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if location is not GroupDocs::Signature::Field::Location

  • (ArgumentError)

    if field is not GroupDocs::Signature::Field

  • (ArgumentError)

    if document is not GroupDocs::Document



362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
# File 'lib/groupdocs/signature/form.rb', line 362

def modify_field_location!(location, field, document, access = {})
  location.is_a?(GroupDocs::Signature::Field::Location) or raise ArgumentError,
    "Location should be GroupDocs::Signature::Field::Location object, received: #{location.inspect}"
  field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
    "Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
    "Document should be GroupDocs::Document object, received: #{document.inspect}"

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields/#{field.id}/locations/#{location.id}"
    request[:request_body] = location.to_hash
  end.execute!
end

#modify_form_document!(document, options = {}, access = {}) ⇒ Object

Modify signature form document

Examples:

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = form.documents!.first
field = form.fields!(document).first
field.name = "Field"
envelope.modify_field! field, document

Parameters:

  • document (GroupDocs::Document)
  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (options):

  • Order (Integer)
  • newDocumentGuid (String)

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



418
419
420
421
422
423
424
425
426
427
428
# File 'lib/groupdocs/signature/form.rb', line 418

def modify_form_document!(document, options = {}, access = {})
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
                                               "Document should be GroupDocs::Document object, received: #{document.inspect}"

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/{{client_id}}/forms/#{id}/document/#{document.file.guid}/"
    request[:request_body] = options
  end.execute!
end

#participant!(participant, access = {}) ⇒ Array

Changed in release 1.5.8

Get signature form participant.

Parameters:

  • participant (String)

    Participant GUID

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


608
609
610
611
612
613
614
615
616
# File 'lib/groupdocs/signature/form.rb', line 608

def participant!(participant, access = {})
  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/public/forms/#{form}/participants/#{participant}"
  end.execute!

  json[:participant]
end

#public_fields!(options = {}, access = {}) ⇒ Array

Changed in release 1.5.8

Get form fields for document in form per participant

Parameters:

  • options (Hash) (defaults to: {})
  • access (Hash) (defaults to: {})

    Access credentials

  • [String] (Hash)

    a customizable set of options

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


582
583
584
585
586
587
588
589
590
591
592
593
594
# File 'lib/groupdocs/signature/form.rb', line 582

def public_fields!(options = {}, access = {})
  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/public/forms/#{id}/fields"
  end
  api.add_params(options)
  json = api.execute!

  json[:fields].map do |field|
    Signature::Field.new(field)
  end
end

#public_fill!(access = {}) ⇒ Array

Parameters:

  • form (String)

    Form GUID

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


471
472
473
474
475
476
477
# File 'lib/groupdocs/signature/form.rb', line 471

def public_fill!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/public/forms/#{id}/fill"
  end.execute!
end

#public_fill_field!(value, field, document, participant, authentication, access = {}) ⇒ Array

Changed in release 1.5.8

Public fill form field.

Examples:

Fill single line field

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = form.documents!.first
field = form.fields!(document).first
fill_form = form.public_fill!
participant = fill_form[:participant][:id]
envelope.fill_field! "my_data", field, document, participant

Fill signature field

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = form.documents!.first
field = form.fields!(document).first
fill_form = form.public_fill!
participant = fill_form[:participant][:id]
signature = GroupDocs::Signature.get!.first
form.fill_field! signature, field, document, participant

Fill checkbox field

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = form.documents!.first
field = form.fields!(document).first
fill_form = form.public_fill!
participant = fill_form[:participant][:id]
form.fill_field! false, field, document, participant

Parameters:

  • document (GroupDocs::Document)

    Document GUID

  • participant (String)

    Participant ID

  • field (GroupDocs::Signature::Field)

    Field GUID

  • authentication (String)

    Authentication signature

  • value (File Stream)

    Data to be placed in field

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
# File 'lib/groupdocs/signature/form.rb', line 520

def public_fill_field!(value, field, document, participant, authentication,  access = {})
  field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
                                                    "Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
  document.is_a?(GroupDocs::Document) or raise ArgumentError,
                                               "Document should be GroupDocs::Document object, received: #{document.inspect}"

  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/public/forms/#{id}/documents/#{document.guid}/participant/#{participant}/field/#{field.id}"
    request[:request_body] = value
    request[:plain] = true
  end
  api.add_params(:participantAuthSignature => authentication)
  json = api.execute!
  Signature::Field.new(json[:field])
end

#public_signed_documents!(path, participant, access = {}) ⇒ Array

Changed in release 1.5.8

Get signed form documents.

Parameters:

  • participant (String)

    Participant GUID

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
# File 'lib/groupdocs/signature/form.rb', line 630

def public_signed_documents!(path, participant, access = {})
  response = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :DOWNLOAD
    request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/documents/get"
  end.execute!


  filepath = "#{path}/#{name}."
  if documents!.size == 1
    filepath << 'pdf'
  else
    filepath << 'zip'
  end

  Object::File.open(filepath, 'wb') do |file|
    file.write(response)
  end

  filepath
end

#publish!(callbackUrl = {}, access = {}) ⇒ Object

Parameters:

  • callbackUrl (Hash) (defaults to: {})

    a customizable set of options

Options Hash (callbackUrl):

  • :callbackUrl (String)


229
230
231
232
233
234
235
236
# File 'lib/groupdocs/signature/form.rb', line 229

def publish!(callbackUrl = {}, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/{{client_id}}/forms/#{id}/publish"
    request[:request_body] = callbackUrl
  end.execute!
end

#sign!(filepath, participant, authentication, participant_name, settings = {}, access = {}) ⇒ Array

Changed in release 1.7.0

Public sign form.

Parameters:

  • settings (Hash) (defaults to: {})
  • filepath (String)

    Path to file to be uploaded

  • participant (String)

    Participant GUID

  • authentication (String)

    Authentication signature

  • participant_name (String)

    Participant Name

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (settings):

  • :authData (String) — default: required
  • :comment (String) — default: required

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


555
556
557
558
559
560
561
562
563
564
565
566
# File 'lib/groupdocs/signature/form.rb', line 555

def sign!( filepath, participant, authentication, participant_name, settings = {}, access = {})
  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/sign"
    request[:request_body] = Object::File.new(filepath, 'rb')
    request[:request_body] = settings

  end
  api.add_params(:participantAuthSignature => authentication, :name => participant_name)
  api.execute!
end

#signed_documents!(path, access = {}) ⇒ String

Changed in release 1.5.8

Downloads signed documents to given path. If there is only one file in envelope, it’s saved as PDF. If there are two or more files in envelope, it’s saved as ZIP.

Parameters:

  • path (String)

    Directory to download file to

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (String)

    path to file



443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
# File 'lib/groupdocs/signature/form.rb', line 443

def signed_documents!(path, access = {})
  response = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :DOWNLOAD
    request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/get"
  end.execute!

  filepath = "#{path}/#{name}.zip"


  Object::File.open(filepath, 'wb') do |file|
    file.write(response)
  end

  filepath
end

#update_from_template!(template, access = {}) ⇒ Object

Updates form adding fields from template.

Parameters:

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Raises:

  • (ArgumentError)

    if template is not GroupDocs::Signature::Template



387
388
389
390
391
392
393
394
395
396
# File 'lib/groupdocs/signature/form.rb', line 387

def update_from_template!(template, access = {})
  template.is_a?(GroupDocs::Signature::Template) or raise ArgumentError,
    "Template should be GroupDocs::Signature::Template object, received: #{template.inspect}"

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = "/signature/{{client_id}}/forms/#{form.id}/templates/#{template.id}"
  end.execute!
end

#update_partipicant!(participant, email, access = {}) ⇒ Array

Added in release 1.7.0

Update Form Participant.

Parameters:

  • form (String)

    Form GUID

  • participant (String)

    Participant GUID

  • authentication (String)

    Authentication signature

  • participant_name (String)

    Participant Name

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


666
667
668
669
670
671
672
673
674
# File 'lib/groupdocs/signature/form.rb', line 666

def update_partipicant!(participant, email, access = {})
  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :PUT
    request[:path] = "/signature/public/forms/#{id}/participant/#{participant}"
  end
  api.add_params(:email => email)
  api.execute!
end

#validate_partipicant!(participant, code, access = {}) ⇒ Array

Added in release 1.7.0

Validate Particpiant Identity.

Parameters:

  • participant (String)

    Participant GUID

  • code (String)

    Code to be validated

  • access (Hash) (defaults to: {})

    Access credentials

Options Hash (access):

  • :client_id (String)
  • :private_key (String)

Returns:

  • (Array)


688
689
690
691
692
693
694
# File 'lib/groupdocs/signature/form.rb', line 688

def validate_partipicant!(participant, code, access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/validationCode/#{code}"
  end.execute!
end