class GraphQR::Pagination::Resolvers::PagyResolver
This is a resolver that uses `Pagy::Backend` and maps it to the GraphQL pagination structure.
Public Class Methods
new(records, arguments)
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 11 def initialize(records, arguments) @records = records @arguments = arguments @pagy, paginated_records = pagy(records, arguments) @paginated_records = paginated_records.to_a end
Public Instance Methods
cursor_from_node(item)
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 19 def cursor_from_node(item) item.to_global_id.to_s end
edge_nodes()
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 23 def edge_nodes @paginated_records end
edges()
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 31 def edges @paginated_records end
nodes()
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 27 def nodes @paginated_records end
page_info()
click to toggle source
# File lib/graphqr/pagination/resolvers/pagy_resolver.rb, line 35 def page_info @pagy.tap do |pagy| pagy.class_eval { attr_accessor :ordered_record_ids_proc } pagy.ordered_record_ids_proc = -> { @records&.all? { |r| r&.respond_to?(:id) } ? @records.map(&:id) : [] } end end