Commit 06a73d67d6ad0dab7c04c7ab3e09af385d863416
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,6 +131,15 @@ module Noosfero | ||
131 | params[:order] || "created_at DESC" | 131 | params[:order] || "created_at DESC" |
132 | end | 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 | def by_reference(scope, params) | 143 | def by_reference(scope, params) |
135 | if params[:reference_id] | 144 | if params[:reference_id] |
136 | created_at = scope.find(params[:reference_id]).created_at | 145 | created_at = scope.find(params[:reference_id]).created_at |
@@ -143,10 +152,13 @@ module Noosfero | @@ -143,10 +152,13 @@ module Noosfero | ||
143 | def select_filtered_collection_of(object, method, params) | 152 | def select_filtered_collection_of(object, method, params) |
144 | conditions = make_conditions_with_parameter(params) | 153 | conditions = make_conditions_with_parameter(params) |
145 | order = make_order_with_parameters(params) | 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 | objects = object.send(method) | 158 | objects = object.send(method) |
148 | objects = by_reference(objects, params) | 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 | objects | 163 | objects |
152 | end | 164 | end |