class DataComApi::Responses::Contacts

Public Class Methods

new(api_client, contact_ids, username, password, purchase_flag) click to toggle source
Calls superclass method DataComApi::Responses::Base::new
# File lib/data-com-api/responses/contacts.rb, line 8
def initialize(api_client, contact_ids, username, password, purchase_flag)
  @contact_ids        = contact_ids
  @username           = username
  @password           = password
  @purchase_flag      = purchase_flag

  @used_points        = nil
  @size               = nil
  @purchased_contacts = nil
  @point_balance      = nil
  @contacts           = []
  super(api_client)
end

Public Instance Methods

contacts() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 50
def contacts
  return @contacts if requested?

  perform_request_if_not_requested!
  @contacts
end
point_balance() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 43
def point_balance
  return @point_balance if requested?

  perform_request_if_not_requested!
  @point_balance
end
purchased_contacts() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 36
def purchased_contacts
  return @purchased_contacts if requested?

  perform_request_if_not_requested!
  @purchased_contacts
end
size() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 22
def size
  return @size if requested?

  perform_request_if_not_requested!
  @size
end
used_points() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 29
def used_points
  return @used_points if requested?

  perform_request_if_not_requested!
  @used_points
end

Protected Instance Methods

perform_request() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 72
def perform_request
  client.contacts_raw_json(
    @contact_ids,
    @username,
    @password,
    @purchase_flag
  )
end
transform_request(request) click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 59
def transform_request(request)
  @used_points        = request['pointsUsed'].to_i
  @size               = request['totalHits'].to_i
  @purchased_contacts = request['numberOfContactsPurchased'].to_i
  @point_balance      = request['pointBalance'].to_i

  if request.include? 'contacts'
    request['contacts'].each do |contact|
      @contacts << DataComApi::Contact.new(contact)
    end
  end
end

Private Instance Methods

perform_request_if_not_requested!() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 83
def perform_request_if_not_requested!
  return if requested?

  transform_request perform_request

  @requested = true
end
requested?() click to toggle source
# File lib/data-com-api/responses/contacts.rb, line 91
def requested?
  @requested
end