Class: Ecoportal::API::GraphQL::Base::QueryConnection
- Inherits:
-
Query
- Object
- Query
- Ecoportal::API::GraphQL::Base::QueryConnection
show all
- Includes:
- Enumerable
- Defined in:
- lib/ecoportal/api/graphql/base/query_connection.rb
Instance Attribute Summary collapse
Attributes inherited from Query
#client
Instance Method Summary
collapse
Methods inherited from Query
accepted_params, #access_point, clear_accepted_params, #request, slice_params, #wrap_response
Constructor Details
#initialize(*args, path: default_base_path, **kargs) ⇒ QueryConnection
Returns a new instance of QueryConnection.
11
12
13
14
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 11
def initialize(*args, path: default_base_path, **kargs)
@path = path
super(*args, **kargs)
end
|
Instance Attribute Details
#path ⇒ Object
Returns the value of attribute path.
9
10
11
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 9
def path
@path
end
|
Instance Method Details
#default_base_path ⇒ Object
49
50
51
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 49
def default_base_path
["currentOrganization"]
end
|
#each(**kargs, &block) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 23
def each(**kargs, &block)
return to_enum(:each, **kargs) unless block
cursor = nil; results = 0
loop do
kargs.update(after: cursor) if cursor
connection = query(**kargs)
pageInfo = connection.pageInfo
connection.nodes.each do |item|
yield item
end
break unless cursor = pageInfo.endCursor
end
end
|
#query(path: default_base_path, **kargs, &block) ⇒ Object
16
17
18
19
20
21
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 16
def query(path: default_base_path, **kargs, &block)
path ||= default_base_path
kargs = self.class.slice_params(kargs)
ap = access_point(path)
raise "Missuse. You have to implement this method in the child class"
end
|
#response_class ⇒ Object
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 38
def response_class
return connection_class if respond_to?(:connection_class)
@response_class ||= self.class.new_class(
item_class,
inherits: Ecoportal::API::GraphQL::Base::Connection,
namespace: "Ecoportal::API::GraphQL::Connection"
) do |klass|
klass.item_class = item_class
end
end
|