Sha256: fd1b5730d729318b372e44d866d200c3c27c8bf7a8811b7c16b8ddbee5e8d7ee
Contents?: true
Size: 937 Bytes
Versions: 6
Compression:
Stored size: 937 Bytes
Contents
module JsonapiCompliable class Scoping::Paginate < Scoping::Base MAX_PAGE_SIZE = 1_000 def apply if size > MAX_PAGE_SIZE raise JsonapiCompliable::Errors::UnsupportedPageSize .new(size, MAX_PAGE_SIZE) else super end end def apply? if @opts[:default] == false not [page_param[:size], page_param[:number]].all?(&:nil?) else true end end def custom_scope resource.pagination end def apply_standard_scope resource.adapter.paginate(@scope, number, size) end def apply_custom_scope custom_scope.call(@scope, number, size) end private def page_param @page_param ||= (query_hash[:page] || {}) end def number (page_param[:number] || resource.default_page_number).to_i end def size (page_param[:size] || resource.default_page_size).to_i end end end
Version data entries
6 entries across 6 versions & 1 rubygems