Commit 8ed077f7cb50c07c59073a9c47aacc4aaa638034

Authored by Leandro Santos
Committed by Rodrigo Souto
1 parent 50d4c07f

refactoring of find conditions

lib/api/helpers.rb
@@ -46,6 +46,19 @@ module API @@ -46,6 +46,19 @@ module API
46 end 46 end
47 end 47 end
48 48
  49 +
  50 + def make_conditions_with_parameter(params = {})
  51 + conditions = {}
  52 + from_date = DateTime.parse(params[:from]) if params[:from]
  53 + until_date = DateTime.parse(params[:until]) if params[:until]
  54 +
  55 + conditions[:type] = parse_content_type(params[:content_type]) unless params[:content_type].nil?
  56 +
  57 + conditions[:created_at] = period(from_date, until_date)
  58 +
  59 + conditions
  60 + end
  61 +
49 #FIXME see if its needed 62 #FIXME see if its needed
50 # def paginate(relation) 63 # def paginate(relation)
51 # per_page = params[:per_page].to_i 64 # per_page = params[:per_page].to_i
lib/api/v1/articles.rb
@@ -19,16 +19,13 @@ module API @@ -19,16 +19,13 @@ module API
19 # :params => API::Entities::Article.documentation 19 # :params => API::Entities::Article.documentation
20 # } 20 # }
21 get do 21 get do
22 - from_date = DateTime.parse(params[:from]) if params[:from]  
23 - until_date = DateTime.parse(params[:until]) if params[:until]  
24 22
25 -  
26 - conditions = {}  
27 #FIXME remove this line when hub be implemented 23 #FIXME remove this line when hub be implemented
28 - params[:content_type] = 'Folder' if params[:content_type].downcase == 'hub' 24 + params[:content_type] = 'Folder' if ((params[:content_type].nil? ? '' : params[:content_type].downcase) == 'hub')
  25 + params[:content_type] = 'Folder' if ((params[:content_type].nil? ? '' : params[:content_type]) == 'CommunityHubPlugin::Hub')
  26 +
  27 + conditions = make_conditions_with_parameter(params)
29 28
30 - conditions[:type] = parse_content_type(params[:content_type])  
31 - conditions[:created_at] = period(from_date, until_date)  
32 if params[:reference_id] 29 if params[:reference_id]
33 articles = environment.articles.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") 30 articles = environment.articles.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC")
34 else 31 else
@@ -46,9 +43,7 @@ module API @@ -46,9 +43,7 @@ module API
46 from_date = DateTime.parse(params[:from]) if params[:from] 43 from_date = DateTime.parse(params[:from]) if params[:from]
47 until_date = DateTime.parse(params[:until]) if params[:until] 44 until_date = DateTime.parse(params[:until]) if params[:until]
48 45
49 - conditions = {}  
50 - conditions[:type] = parse_content_type(params[:content_type])  
51 - conditions[:created_at] = period(from_date, until_date) 46 + conditions = make_conditions_with_parameter(params)
52 if params[:reference_id] 47 if params[:reference_id]
53 articles = environment.articles.find(params[:id]).children.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") 48 articles = environment.articles.find(params[:id]).children.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC")
54 else 49 else
lib/api/v1/comments.rb
@@ -16,11 +16,9 @@ module API @@ -16,11 +16,9 @@ module API
16 # Example Request: 16 # Example Request:
17 # GET /articles/12/comments?oldest&limit=10&reference_id=23 17 # GET /articles/12/comments?oldest&limit=10&reference_id=23
18 get ":id/comments" do 18 get ":id/comments" do
19 - from_date = DateTime.parse(params[:from]) if params[:from]  
20 - until_date = DateTime.parse(params[:until]) if params[:until]  
21 19
22 - conditions = {}  
23 - conditions[:created_at] = period(from_date, until_date) 20 + conditions = make_conditions_with_parameter(params)
  21 +
24 if params[:reference_id] 22 if params[:reference_id]
25 comments = environment.articles.find(params[:id]).comments.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") 23 comments = environment.articles.find(params[:id]).comments.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC")
26 else 24 else