module Pipedrive::Utils

Public Instance Methods

follow_pagination(method, args, params, &block) click to toggle source
# File lib/pipedrive/utils.rb, line 7
def follow_pagination(method, args, params, &block)
  start = params[:start] || 0
  loop do
    res = __send__(method, *args, params.merge(start: start))
    break if !res.try(:data) || !res.success?

    res.data.each(&block)
    break unless res.try(:additional_data).try(:pagination).try(:more_items_in_collection?)

    start = res.try(:additional_data).try(:pagination).try(:next_start)
  end
end