class GroupDocs::Signature::Contact

Constants

INTEGRATION_PROVIDERS

Attributes

email[RW]

@attr [String] email

firstName[RW]

@attr [String] firstName

id[RW]

@attr [String] id

lastName[RW]

@attr [String] lastName

nickname[RW]

@attr [String] nickname

provider[RW]

@attr [String] provider

Public Class Methods

add_integration!(integration, access = {}) click to toggle source

Adds contact integration.

@example Add Google contacts integration

integration = {
  provider:                :google,
  refresh_token:           'token',
  access_token:            'token',
  access_token_expiration: '2014-12-12'
}

@param [Hash] integration @option integration [Symbol] provider One of :local, :groupdocs or :google @option integration [String] refresh_token @option integration [String] access_token @option integration [String] access_token_exipration @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key

# File lib/groupdocs/signature/contact.rb, line 91
def self.add_integration!(integration, access = {})
  payload = {
    :provider              => INTEGRATION_PROVIDERS[integration[:provider]],
    :refreshToken          => integration[:refresh_token],
    :accessToken           => integration[:access_token],
    :accessTokenExpiration => integration[:access_token_expiration],
  }

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = '/signature/{{client_id}}/integration'
    request[:request_body] = payload
  end.execute!
end
get!(options = {}, access = {}) click to toggle source

Returns a list of all contacts.

@param [Hash] options Hash of options @option options [Integer] :page Page to start with @option options [Integer] :records How many items to list @option options [String] :firstName Filter by first name @option options [String] :lastName Filter by last name @option options [String] :email Filter by last name @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key @return [Array<GroupDocs::Signature::Contact>]

# File lib/groupdocs/signature/contact.rb, line 24
def self.get!(options = {}, access = {})
  api = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :GET
    request[:path] = '/signature/{{client_id}}/contacts'
  end
  api.add_params(options)
  json = api.execute!

  json[:contacts].map do |contact|
    new(contact)
  end
end
import!(contacts, access = {}) click to toggle source

Imports array of contacts.

@example

contact_one = GroupDocs::Signature::Contact.new
contact_one.first_name = 'John'
contact_one.last_name = 'Smith'
contact_one.email = 'john@smith.com'
contact_two = GroupDocs::Signature::Contact.new
contact_two.first_name = 'Carla'
contact_two.last_name = 'Smith'
contact_two.email = 'carla@smith.com'
GroupDocs::Signature::Contact.import!([contact_one, contact_two])

@param [Array<GroupDocs::Signature::Contact>] contacts @param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key

# File lib/groupdocs/signature/contact.rb, line 57
def self.import!(contacts, access = {})
  contacts.is_a?(Array) or raise ArgumentError, "Contacts should be array, received: #{contacts.inspect}"
  contacts.each do |contact|
    contact.is_a?(GroupDocs::Signature::Contact) or raise ArgumentError, "Contact should be GroupDocs::Signature::Contact, received: #{contact.inspect}"
  end

  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = '/signature/{{client_id}}/contacts'
    request[:request_body] = contacts.map { |contact| contact.to_hash }
  end.execute!
end

Public Instance Methods

add!(access = {}) click to toggle source

Adds contact.

@example

contact = GroupDocs::Signature::Contact.new
contact.first_name = 'John'
contact.last_name = 'Smith'
contact.email = 'john@smith.com'
contact.add!

@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key

# File lib/groupdocs/signature/contact.rb, line 138
def add!(access = {})
  json = Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = '/signature/{{client_id}}/contact'
    request[:request_body] = to_hash
  end.execute!

  self.id = json[:contact][:id]
end
delete!(access = {}) click to toggle source

Deletes contact.

@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key

# File lib/groupdocs/signature/contact.rb, line 172
def delete!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :DELETE
    request[:path] = "/signature/{{client_id}}/contacts/#{id}"
  end.execute!
end
update!(access = {}) click to toggle source

Updates contact.

@param [Hash] access Access credentials @option access [String] :client_id @option access [String] :private_key

# File lib/groupdocs/signature/contact.rb, line 156
def update!(access = {})
  Api::Request.new do |request|
    request[:access] = access
    request[:method] = :POST
    request[:path] = "/signature/{{client_id}}/contacts/#{id}"
    request[:request_body] = to_hash
  end.execute!
end