]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/concerns/pagination_methods.rb
Add validation for before/after parameters to pagination concern
[rails.git] / app / controllers / concerns / pagination_methods.rb
index 58b522516618c545a2d1429aaba5675539d51dba..79ab10bfb1a6c9bb8c47937406b2d29952df9c70 100644 (file)
@@ -5,7 +5,10 @@ module PaginationMethods
 
   ##
   # limit selected items to one page, get ids of first item before/after the page
-  def get_page_items(items, includes)
+  def get_page_items(items, includes: [], limit: 20)
+    param! :before, Integer, :min => 1
+    param! :after, Integer, :min => 1
+
     id_column = "#{items.table_name}.id"
     page_items = if params[:before]
                    items.where("#{id_column} < ?", params[:before]).order(:id => :desc)
@@ -15,7 +18,7 @@ module PaginationMethods
                    items.order(:id => :desc)
                  end
 
-    page_items = page_items.limit(20)
+    page_items = page_items.limit(limit)
     page_items = page_items.includes(includes)
     page_items = page_items.sort.reverse