diff --git a/app/controllers/concerns/pagination_data.rb b/app/controllers/concerns/pagination_data.rb new file mode 100644 index 0000000000..d03c54304a --- /dev/null +++ b/app/controllers/concerns/pagination_data.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module PaginationData + extend ActiveSupport::Concern + + def pagination_data(objects, default_page: nil, default_per_page: nil) + { + results: objects.total_count, + pages: objects.num_pages, + page: (params[:page] || default_page).to_i, + per_page: (params[:per_page] || default_per_page).to_i + } + end + + def pagination_required? + params[:page].present? || params[:per_page].present? + end +end