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
58
59
60
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 58
def default_base_path
["currentOrganization"]
end
|
#each(connection_block: nil, **kargs, &block) ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 32
def each(connection_block: nil, **kargs, &block)
return to_enum(:each, **kargs, connection_block: connection_block) unless block
cursor = nil; results = 0
loop do
kargs.update(after: cursor) if cursor
connection = query(**kargs, &connection_block)
pageInfo = connection.pageInfo
connection.nodes.each do |item|
yield item
end
break unless cursor = pageInfo.endCursor
end
end
|
#graphql_query(**kargs, &block) ⇒ Object
23
24
25
26
27
28
29
30
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 23
def graphql_query(**kargs, &block)
query_params = self.class.slice_params(kargs)
client.query(query_params, &block)
rescue Faraday::ParsingError => e
puts "Internal Error with these params:"
pp kargs
raise
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
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/ecoportal/api/graphql/base/query_connection.rb', line 47
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
|