Sha256: 6de8c793d05bc06a9e32d442135a71d8d5751c97d1df2459a00cd6c0546f7daa
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
require 'active_support' class LHS::Service module All extend ActiveSupport::Concern module ClassMethods # Should be an edge case but sometimes all objects from a certain resource # are required. In this case we load the first page with the default max limit, # compute the amount of left over requests, do all the the left over requests # for the following pages and concatenate all the results in order to return # all the objects for a given resource. def all(params = {}) all = [] default_max_limit = 100 data = instance.request(params: params.merge(limit: default_max_limit)) all.concat(data._raw['items']) total_left = data._raw['total'] - data.count limit = data._raw['limit'] || data.count requests = total_left / limit requests.times do |i| offset = limit * (i+1) + 1 all.concat instance.request(params: params.merge(limit: limit, offset: offset))._raw['items'] end LHS::Data.new(all, nil, self) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lhs-1.2.1 | lib/lhs/concerns/service/all.rb |