Commit 06a73d67d6ad0dab7c04c7ab3e09af385d863416

Authored by Luciano Prestes
1 parent 74d57813
Exists in api_pagination

Add pagination in api

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Showing 1 changed file with 13 additions and 1 deletions   Show diff stats
lib/noosfero/api/helpers.rb
... ... @@ -131,6 +131,15 @@ module Noosfero
131 131 params[:order] || "created_at DESC"
132 132 end
133 133  
  134 + def make_page_number_with_parameters(params)
  135 + params[:page] || 1
  136 + end
  137 +
  138 + def make_per_page_with_parameters(params)
  139 + params[:per_page] ||= limit
  140 + params[:per_page].to_i
  141 + end
  142 +
134 143 def by_reference(scope, params)
135 144 if params[:reference_id]
136 145 created_at = scope.find(params[:reference_id]).created_at
... ... @@ -143,10 +152,13 @@ module Noosfero
143 152 def select_filtered_collection_of(object, method, params)
144 153 conditions = make_conditions_with_parameter(params)
145 154 order = make_order_with_parameters(params)
  155 + page_number = make_page_number_with_parameters(params)
  156 + per_page = make_per_page_with_parameters(params)
146 157  
147 158 objects = object.send(method)
148 159 objects = by_reference(objects, params)
149   - objects = objects.where(conditions).limit(limit).order(order)
  160 +
  161 + objects = objects.where(conditions).page(page_number).per_page(per_page).order(order)
150 162  
151 163 objects
152 164 end
... ...