Module: Smplkit::ApiSupport::PaginatedFetch

Defined in:
lib/smplkit/api_support.rb

Overview

Walk a generated paginated list endpoint to completion.

The block receives a per-page opts hash with page_number and page_size filled in, calls the generated list method through ErrorMapping.call, and returns the response object. Pages stop when the server returns fewer rows than requested — the platform’s standard last-page signal across every offset-paginated list endpoint. Returns the concatenated response.data rows.

Class Method Summary collapse

Class Method Details

.collect(page_size: RUNTIME_PAGE_SIZE) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/smplkit/api_support.rb', line 50

def collect(page_size: RUNTIME_PAGE_SIZE)
  rows = []
  page_number = 1
  loop do
    opts = { page_number: page_number, page_size: page_size }
    response = ErrorMapping.call { yield(opts) }
    page = response.data || []
    rows.concat(page)
    break if page.length < page_size

    page_number += 1
  end
  rows
end