Commit 69d3de3017c3f5bcd4a6297716be3cf2753cc92b
1 parent
fa43ac7e
Exists in
master
and in
29 other branches
Add timestamp 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
@@ -140,6 +140,17 @@ module Noosfero | @@ -140,6 +140,17 @@ module Noosfero | ||
140 | params[:per_page].to_i | 140 | params[:per_page].to_i |
141 | end | 141 | end |
142 | 142 | ||
143 | + def make_timestamp_with_parameters_and_method(params, method) | ||
144 | + timestamp = nil | ||
145 | + if params[:timestamp] | ||
146 | + datetime = DateTime.parse(params[:timestamp]) | ||
147 | + table_name = method.to_s.singularize.camelize.constantize.table_name | ||
148 | + timestamp = "#{table_name}.updated_at >= '#{datetime}'" | ||
149 | + end | ||
150 | + | ||
151 | + timestamp | ||
152 | + end | ||
153 | + | ||
143 | def by_reference(scope, params) | 154 | def by_reference(scope, params) |
144 | if params[:reference_id] | 155 | if params[:reference_id] |
145 | created_at = scope.find(params[:reference_id]).created_at | 156 | created_at = scope.find(params[:reference_id]).created_at |
@@ -154,11 +165,12 @@ module Noosfero | @@ -154,11 +165,12 @@ module Noosfero | ||
154 | order = make_order_with_parameters(params) | 165 | order = make_order_with_parameters(params) |
155 | page_number = make_page_number_with_parameters(params) | 166 | page_number = make_page_number_with_parameters(params) |
156 | per_page = make_per_page_with_parameters(params) | 167 | per_page = make_per_page_with_parameters(params) |
168 | + timestamp = make_timestamp_with_parameters_and_method(params, method) | ||
157 | 169 | ||
158 | objects = object.send(method) | 170 | objects = object.send(method) |
159 | objects = by_reference(objects, params) | 171 | objects = by_reference(objects, params) |
160 | 172 | ||
161 | - objects = objects.where(conditions).page(page_number).per_page(per_page).order(order) | 173 | + objects = objects.where(conditions).where(timestamp).page(page_number).per_page(per_page).order(order) |
162 | 174 | ||
163 | objects | 175 | objects |
164 | end | 176 | end |