Class: GroupDocs::Signature::Form

Inherits:
Api::Entity show all
Extended by:
ResourceMethods
Includes:
EntityMethods
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 EntityMethods

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

Methods inherited from Api::Entity

#initialize, #inspect, #to_hash

Constructor Details

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

Instance Attribute Details

#canParticipantDownloadFormObject Also known as: can_participant_download_form



67
68
69
# File 'lib/groupdocs/signature/form.rb', line 67

def canParticipantDownloadForm
  @canParticipantDownloadForm
end

#createdTimeStampObject Also known as: created_time_stamp



55
56
57
# File 'lib/groupdocs/signature/form.rb', line 55

def createdTimeStamp
  @createdTimeStamp
end

#documentsCountObject Also known as: documents_count



59
60
61
# File 'lib/groupdocs/signature/form.rb', line 59

def documentsCount
  @documentsCount
end

#documentsPagesObject Also known as: documents_pages



61
62
63
# File 'lib/groupdocs/signature/form.rb', line 61

def documentsPages
  @documentsPages
end

#fieldsInFinalFileNameObject Also known as: fields_in_final_file_name



65
66
67
# File 'lib/groupdocs/signature/form.rb', line 65

def fieldsInFinalFileName
  @fieldsInFinalFileName
end

#idObject



47
48
49
# File 'lib/groupdocs/signature/form.rb', line 47

def id
  @id
end

#nameObject



49
50
51
# File 'lib/groupdocs/signature/form.rb', line 49

def name
  @name
end

#ownerGuidObject Also known as: owner_guid



51
52
53
# File 'lib/groupdocs/signature/form.rb', line 51

def ownerGuid
  @ownerGuid
end

#participantsCountObject Also known as: participants_count



63
64
65
# File 'lib/groupdocs/signature/form.rb', line 63

def participantsCount
  @participantsCount
end

#statusSymbol

Converts status to human-readable format.

Returns:

  • (Symbol)


69
70
71
# File 'lib/groupdocs/signature/form.rb', line 69

def status
  @status
end

#statusDateTimeObject Also known as: status_date_time



57
58
59
# File 'lib/groupdocs/signature/form.rb', line 57

def statusDateTime
  @statusDateTime
end

#templateGuidObject Also known as: template_guid



53
54
55
# File 'lib/groupdocs/signature/form.rb', line 53

def templateGuid
  @templateGuid
end

Class Method Details

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

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 by status identifier

  • :document (String)

    Filter by document GUID

  • :date (String)

    Filter by date

  • :name (String)

    Filter by name

Options Hash (access):

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

Returns:



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/groupdocs/signature/form.rb', line 29

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

Instance Method Details

#archive!(access = {}) ⇒ Object

Archives completed form.

Parameters:

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

    Access credentials

Options Hash (access):

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


193
194
195
196
197
198
199
# File 'lib/groupdocs/signature/form.rb', line 193

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)


178
179
180
181
182
183
184
# File 'lib/groupdocs/signature/form.rb', line 178

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!(template, options = {}, access = {}) ⇒ Object

Creates form.

Examples:

template = GroupDocs::Singature::Template!.get!('09662aab7187f31444476288ebaf7da4')
form = GroupDocs::Signature::Form.new
form.name = "Form"
form.create! template

Parameters:

  • template (GroupDocs::Signature::Template)
  • options (Hash) (defaults to: {})

    Hash of options

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

    Access credentials

Options Hash (options):

  • :assembly_id (Integer)

    Assembly GUID to use

Options Hash (access):

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

Raises:

  • (ArgumentError)

    if template is not GroupDocs::Signature::Template



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/groupdocs/signature/form.rb', line 116

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

  assembly_id = options.delete(:assembly_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, templateId: template.id))
  json = api.execute!

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

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

Returns documents array.

Parameters:

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

    Access credentials

Options Hash (access):

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

Returns:



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

def documents!(access = {})
  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|
    file = Storage::File.new(guid: document[:documentId], name: document[:name])
    Document.new(document.merge(file: file))
  end
end

#publish!(access = {}) ⇒ Object

Publishes form.

Parameters:

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

    Access credentials

Options Hash (access):

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


163
164
165
166
167
168
169
# File 'lib/groupdocs/signature/form.rb', line 163

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