Files
openfoodnetwork/app/controllers/concerns/pagination_data.rb
Matt-Yorkley 47f9a3f08a Add guard clause and remove conditionals
Sometimes the objects are not paginated. In this case we need to avoid trying to render pagination data, as it will throw an error. This guard clause also means we can remove messy conditionals from several controllers.
2021-01-05 18:51:24 +00:00

27 lines
572 B
Ruby

# frozen_string_literal: true
module PaginationData
extend ActiveSupport::Concern
def pagination_data(objects)
return unless objects.respond_to? :total_count
{
results: objects.total_count,
pages: objects.total_pages,
page: (params[:page] || 1).to_i,
per_page: (params[:per_page] || default_per_page).to_i
}
end
def pagination_required?
params[:page].present? || params[:per_page].present?
end
def default_per_page
return unless defined? self.class::DEFAULT_PER_PAGE
self.class::DEFAULT_PER_PAGE
end
end