Commit 69d3de3017c3f5bcd4a6297716be3cf2753cc92b
1 parent
fa43ac7e
Exists in
master
and in
21 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 |