class GraphQR::Pagination::Resolvers::RecordPageNumberResolver

This is a resolver that receives the id of an object and returns the page number in which the object is located.

Constants

INDEX_OFFSET

Public Instance Methods

resolve(record_id:) click to toggle source
# File lib/graphqr/pagination/resolvers/record_page_number_resolver.rb, line 16
def resolve(record_id:)
  per_page = object.vars[:items]
  records_ids = object.ordered_record_ids_proc.call
  record_index = records_ids.find_index(record_id.to_i)

  return if per_page.zero? || records_ids.blank? || record_index.blank?

  record_position = (record_index + INDEX_OFFSET).to_f
  (record_position / per_page).ceil
end