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 46 end
47 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 62 #FIXME see if its needed
50 63 # def paginate(relation)
51 64 # per_page = params[:per_page].to_i
... ...
lib/api/v1/articles.rb
... ... @@ -19,16 +19,13 @@ module API
19 19 # :params => API::Entities::Article.documentation
20 20 # }
21 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 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 29 if params[:reference_id]
33 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 31 else
... ... @@ -46,9 +43,7 @@ module API
46 43 from_date = DateTime.parse(params[:from]) if params[:from]
47 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 47 if params[:reference_id]
53 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 49 else
... ...
lib/api/v1/comments.rb
... ... @@ -16,11 +16,9 @@ module API
16 16 # Example Request:
17 17 # GET /articles/12/comments?oldest&limit=10&reference_id=23
18 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 22 if params[:reference_id]
25 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 24 else
... ...