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 | 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 | ... | ... |