class GdsApi::Search

def search_enum(args, page_size: 100, additional_headers: {})

Other tags:
    See: https://github.com/alphagov/search-api/blob/master/doc/search-api.md -

Parameters:
  • page_size (Integer) -- Number of results in each page.
  • args (Hash) -- A valid search query. See search-api documentation for options.
def search_enum(args, page_size: 100, additional_headers: {})
  Enumerator.new do |yielder|
    (0..Float::INFINITY).step(page_size).each do |index|
      search_params = args.merge(start: index.to_i, count: page_size)
      results = search(search_params, additional_headers).to_h.fetch('results', [])
      results.each do |result|
        yielder << result
      end
      if results.count < page_size
        break
      end
    end
  end
end