lib/gooddata/mixins/md_object_query.rb in gooddata-0.6.19 vs lib/gooddata/mixins/md_object_query.rb in gooddata-0.6.20
- old
+ new
@@ -31,11 +31,21 @@
fail ArgumentError, 'No :project specified' if p.nil?
project = GoodData::Project[p, options]
fail ArgumentError, 'Wrong :project specified' if project.nil?
- query_result = client.get(project.md['query'] + "/#{query_obj_type}/")['query']['entries']
- options[:full] == false ? query_result : query_result.pmap { |item| klass[item['link'], options] }
+ offset = 0
+ page_limit = 50
+ Enumerator.new do |y|
+ loop do
+ result = client.get(project.md['objects'] + '/query', params: { category: query_obj_type, limit: page_limit, offset: offset })
+ result['objects']['items'].each do |item|
+ y << (klass ? client.create(klass, item, project: project) : item)
+ end
+ break if result['objects']['paging']['count'] < page_limit
+ offset += page_limit
+ end
+ end
end
def dependency(uri, key = nil, opts = { :client => GoodData.connection })
c = opts[:client]
fail ArgumentError, 'No :client specified' if c.nil?