class Intercom::ClientCollectionProxy

Public Instance Methods

each(&block) click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 8
def each(&block)
  next_page = nil
  current_page = nil
  loop do
    response_hash = fetch(next_page)
    raise Intercom::HttpError, 'Http Error - No response entity returned' unless response_hash

    current_page = extract_current_page(response_hash)
    deserialize_response_hash(response_hash, block)
    next_page = extract_next_link(response_hash)
    break if next_page.nil? || (@params[:page] && (current_page >= @params[:page]))
  end
  self
end
fetch(next_page) click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 23
def fetch(next_page)
  if next_page
    @client.get(next_page, {})
  else
    @client.get(@url, @params)
  end
end

Private Instance Methods

extract_current_page(response_hash) click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 44
def extract_current_page(response_hash)
  return nil unless paging_info_present?(response_hash)

  response_hash['pages']['page']
end
paging_info_present?(response_hash) click to toggle source
# File lib/intercom/client_collection_proxy.rb, line 33
def paging_info_present?(response_hash)
  !!(response_hash['pages'] && response_hash['pages']['type'])
end