Module: GroupDocs::Signature::DocumentMethods

Included in:
Envelope, Form, Template
Defined in:
lib/groupdocs/signature/shared/document_methods.rb

Overview

Envelope and template entities share the same set of document methods.

See Also:

Instance Method Summary collapse

Instance Method Details

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

Adds document.

Examples:

template = GroupDocs::Signature::Template.get!("g94h5g84hj9g4gf23i40j")
document = GroupDocs::Storage::Folder.list!.last.to_document
template.add_document! document
envelope = GroupDocs::Signature::Envelope.get!("g94h5g84hj9g4gf23i40j")
document = GroupDocs::Storage::Folder.list!.last.to_document
envelope.add_document! document

Options Hash (options):

  • :parseFields (Boolean)

    Try to parse fields in document

  • :order (Integer)

    Display order of the document

Options Hash (access):

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

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/groupdocs/signature/shared/document_methods.rb', line 76

def add_document!(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] = :POST
    request[:path] = "/signature/{{client_id}}/#{class_name.pluralize}/#{id}/document/#{document.file.guid}"
  end
  api.add_params(options)
  api.execute!
end

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

Returns documents array.

Options Hash (options):

Options Hash (access):

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


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/groupdocs/signature/shared/document_methods.rb', line 23

def documents!(options = {}, access = {})
  path = if options[:public]
           case class_name
           when 'envelope'
             options[:recipient].is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
               "Recipient should be GroupDocs::Signature::Recipient object, received: #{options[:recipient].inspect}"

             "/signature/public/envelopes/#{id}/recipient/#{options[:recipient].id}/documents"
           when 'form'
             "/signature/public/forms/#{id}/documents"
           else
             raise ArgumentError, "Public is supported only for envelope or form."
           end
         else
           "/signature/{{client_id}}/#{class_name.pluralize}/#{id}/documents"
         end

  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = path
  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

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

Removes document.

Examples:

template = GroupDocs::Signature::Template.get!("g94h5g84hj9g4gf23i40j")
document = template.documents!.first
template.remove_document! document
envelope = GroupDocs::Signature::Envelope.get!("g94h5g84hj9g4gf23i40j")
document = envelope.documents!.first
envelope.remove_document! document

Options Hash (access):

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

Raises:

  • (ArgumentError)

    if document is not GroupDocs::Document



108
109
110
111
112
113
114
115
116
117
# File 'lib/groupdocs/signature/shared/document_methods.rb', line 108

def remove_document!(document, 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] = :DELETE
    request[:path] = "/signature/{{client_id}}/#{class_name.pluralize}/#{id}/documents/#{document.file.guid}"
  end.execute!
end

#rename_document!(new_name, document, access = {}) ⇒ Object

Rename signature template document

Examples:

Rename document from template

template = GroupDocs::Signature::Template.get!("g94h5g84hj9g4gf23i40j")
document = template.documents!.first
template.rename_document! (new_name, document)

Rename document from envelope

envelope = GroupDocs::Signature::Envelope.get!("g94h5g84hj9g4gf23i40j")
document = envelope.documents!.first
envelope.rename_document! (new_name, document)

Rename document from form

form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
document = envelope.documents!.first
form.rename_document! (new_name, document)

Options Hash (access):

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

Raises:

  • (ArgumentError)

    if field is not GroupDocs::Signature::Field



143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/groupdocs/signature/shared/document_methods.rb', line 143

def rename_document!(new_name, document, 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] = :PUT
    request[:path] = "/signature/{{client_id}}/#{class_name.pluralize}/#{id}/document/#{document.file.guid}"
  end
  api.add_params(:newName => new_name)
  api.execute!
end