Module: GroupDocs::Signature::ResourceMethods

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

Overview

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

See Also:

Instance Method Summary collapse

Instance Method Details

#resources!(options = {}, access = {}) ⇒ Hash

Returns a list of resources.

Examples:

resources = GroupDocs::Signature::Envelope.resources!
resources[:documents]
#=> [#<GroupDocs::Document>]
resources[:recipients]
#=> [#<GroupDocs::Signature::Recipient>]
resources[:dates]
#=> ["2012-09-25T00:00:00.0000000"]

Parameters:

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

    Hash of options

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

    Access credentials

Options Hash (options):

  • :status_ids (Array<Integer>)

    List of status identifiers to filter. Doesn’t work for template

Options Hash (access):

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

Returns:

  • (Hash)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/groupdocs/signature/shared/resource_methods.rb', line 31

def resources!(options = {}, access = {})
  class_name = self.name.split('::').last.downcase

  # filter doesn't work for template
  unless class_name == 'template'
    ids = options.delete(:status_ids)
    options[:statusIds] = ids.join(?,) if ids
  end

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

  resources = {}
  json.each do |key, value|
    resources[key] = case key
                     when :documents
                       value.map { |doc| Document.new(:file => Storage::File.new(doc)) }
                     when :recipients
                       value.map { |recipient| Signature::Recipient.new(recipient) }
                     else
                       value
                     end
  end

  resources
end