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

Parameters:

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

    Access credentials

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.

Parameters:

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

    Access credentials

Options Hash (options):

Options Hash (access):

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

Returns:



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

Parameters:

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)

Parameters:

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