Class: Ecoportal::API::GraphQL::Logic::QueryConnection

Inherits:
Query
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ecoportal/api/graphql/logic/query_connection.rb

Constant Summary

Constants inherited from BaseQuery

BaseQuery::DETAIL_ERRORS

Instance Attribute Summary

Attributes inherited from BaseQuery

#base_path, #client

Instance Method Summary collapse

Methods inherited from BaseQuery

accepted_params, #access_point, base_path, clear_accepted_params, field_name, #initialize, param_defaults, #path, #query, slice_params

Constructor Details

This class inherits a constructor from Ecoportal::API::GraphQL::Logic::BaseQuery

Instance Method Details

#each(connection_block: nil, **kargs, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ecoportal/api/graphql/logic/query_connection.rb', line 9

def each(connection_block: nil, **kargs, &block)
  return to_enum(:each, **kargs, connection_block: connection_block) unless block

  connection_block ||= default_connection_block

  cursor = nil
  loop do
    kargs.update(after: cursor) if cursor
    connection = query(**kargs, &connection_block)
    #total    = connection.totalCount
    page_info = connection.pageInfo
    connection.nodes.each(&block)
    break unless (cursor = page_info.endCursor)
  end
end

#response_classObject



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ecoportal/api/graphql/logic/query_connection.rb', line 25

def response_class
  return connection_class if respond_to?(:connection_class)

  @response_class ||= self.class.new_class(
    item_class,
    inherits:  Logic::Connection,
    namespace: "Ecoportal::API::GraphQL::Connection"
  ) do |klass|
    klass.item_class = item_class
  end
end