diff --git a/lib/vimaly/client.rb b/lib/vimaly/client.rb index b10d06b..22080a2 100644 --- a/lib/vimaly/client.rb +++ b/lib/vimaly/client.rb @@ -86,7 +86,11 @@ def bin(name_or_regex) def bins @bins ||= begin - get('/bins?max-results=500').map do |bin_data| + per_page = 500 + data = (0..1).inject([]) do |list, page| + list += get("/bins?max-results=#{per_page}&page-token=#{page * 500}") + end + data.map do |bin_data| Bin.new(bin_data['_id'], bin_data['name']) end end diff --git a/test/client_test.rb b/test/client_test.rb index 23abcf3..c9951f3 100644 --- a/test/client_test.rb +++ b/test/client_test.rb @@ -181,11 +181,15 @@ class ClientTest < Minitest::Test client = Vimaly::Client.new('company_id', user_credentials: { username: 'username', password: 'password' }) bins = client.bins - assert_equal 2, bins.size + assert_equal 4, bins.size # API called twice now (2 pages) assert_equal 'Alpha', bins[0].name assert_equal 1, bins[0].id assert_equal 'Beta', bins[1].name assert_equal 2, bins[1].id + assert_equal 'Alpha', bins[2].name + assert_equal 1, bins[2].id + assert_equal 'Beta', bins[3].name + assert_equal 2, bins[3].id end end