From 69d3de3017c3f5bcd4a6297716be3cf2753cc92b Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Thu, 6 Aug 2015 11:42:14 -0300 Subject: [PATCH] Add timestamp in API --- lib/noosfero/api/helpers.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index 27ddc7f..d581208 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -140,6 +140,17 @@ module Noosfero params[:per_page].to_i end + def make_timestamp_with_parameters_and_method(params, method) + timestamp = nil + if params[:timestamp] + datetime = DateTime.parse(params[:timestamp]) + table_name = method.to_s.singularize.camelize.constantize.table_name + timestamp = "#{table_name}.updated_at >= '#{datetime}'" + end + + timestamp + end + def by_reference(scope, params) if params[:reference_id] created_at = scope.find(params[:reference_id]).created_at @@ -154,11 +165,12 @@ module Noosfero order = make_order_with_parameters(params) page_number = make_page_number_with_parameters(params) per_page = make_per_page_with_parameters(params) + timestamp = make_timestamp_with_parameters_and_method(params, method) objects = object.send(method) objects = by_reference(objects, params) - objects = objects.where(conditions).page(page_number).per_page(per_page).order(order) + objects = objects.where(conditions).where(timestamp).page(page_number).per_page(per_page).order(order) objects end -- libgit2 0.21.2