Commit 69d3de3017c3f5bcd4a6297716be3cf2753cc92b

Authored by Luciano Prestes
1 parent fa43ac7e

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