Class: FrederickAPI::V2::Helpers::Paginator

Inherits:
JsonApiClient::Paginating::Paginator
  • Object
show all
Defined in:
lib/frederick_api/v2/helpers/paginator.rb

Overview

Custom paginator for json api client Fixes param names for pagination Also adds ability to get all records from a paginated API

Instance Method Summary collapse

Instance Method Details

#all_recordsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/frederick_api/v2/helpers/paginator.rb', line 13

def all_records
  current_result_set = nil
  results = self.result_set.to_a
  first_resource = self.result_set.first

  (total_pages - current_page).times do
    first_resource.class.with_headers(first_resource.custom_headers) do
      current_result_set = current_result_set ? current_result_set.pages.next : self.result_set.pages.next
      raise 'next link not found' unless current_result_set
      results.push(*current_result_set.to_a)
    end
  end

  results
end