Class: HTTPPaginator

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab-burndown/net/http/paginator.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, base_url, header_total_pages) ⇒ HTTPPaginator

Returns a new instance of HTTPPaginator.



4
5
6
7
8
# File 'lib/gitlab-burndown/net/http/paginator.rb', line 4

def initialize(client, base_url, header_total_pages)
  @client = client
  @base_url = base_url
  @header_total_pages = header_total_pages
end

Instance Method Details

#paginate(pagination) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gitlab-burndown/net/http/paginator.rb', line 10

def paginate(pagination)
  pagination = Pagination.new(1, []) if pagination.nil?
  url = "#{@base_url}#{pagination.page}"
  warn "Reading #{url}"
  response = @client.get(url)
  pagination.results.concat(response.json)

  return pagination.results if response.header(@header_total_pages) == pagination.page.to_s

  pagination.page += 1
  paginate(pagination)
end