Commit fa0a9ba753ebd4998f06075456711826b0a8be07
Committed by
Rodrigo Souto
1 parent
da3f08f8
Exists in
master
and in
29 other branches
API: adding more parameters as filter in conditions
Showing
1 changed file
with
11 additions
and
4 deletions
Show diff stats
lib/noosfero/api/helpers.rb
... | ... | @@ -2,6 +2,7 @@ module Noosfero |
2 | 2 | module API |
3 | 3 | module APIHelpers |
4 | 4 | PRIVATE_TOKEN_PARAM = :private_token |
5 | + ALLOWED_PARAMETERS = ['parent_id', 'from', 'until', 'content_type'] | |
5 | 6 | |
6 | 7 | def logger |
7 | 8 | @logger ||= Logger.new(File.join(Rails.root, 'log', "#{ENV['RAILS_ENV']}_api.log")) |
... | ... | @@ -52,15 +53,17 @@ module Noosfero |
52 | 53 | article = articles.find(id) |
53 | 54 | article.display_to?(current_user.person) ? article : forbidden! |
54 | 55 | end |
55 | - | |
56 | + | |
56 | 57 | def make_conditions_with_parameter(params = {}) |
58 | + parsed_params = parser_params(params) | |
57 | 59 | conditions = {} |
58 | - from_date = DateTime.parse(params[:from]) if params[:from] | |
59 | - until_date = DateTime.parse(params[:until]) if params[:until] | |
60 | + from_date = DateTime.parse(parsed_params.delete('from')) if parsed_params['from'] | |
61 | + until_date = DateTime.parse(parsed_params.delete('until')) if parsed_params['until'] | |
60 | 62 | |
61 | - conditions[:type] = parse_content_type(params[:content_type]) unless params[:content_type].nil? | |
63 | + conditions[:type] = parse_content_type(parsed_params.delete('content_type')) unless parsed_params['content_type'].nil? | |
62 | 64 | |
63 | 65 | conditions[:created_at] = period(from_date, until_date) if from_date || until_date |
66 | + conditions.merge!(parsed_params) | |
64 | 67 | |
65 | 68 | conditions |
66 | 69 | end |
... | ... | @@ -165,6 +168,10 @@ module Noosfero |
165 | 168 | end |
166 | 169 | |
167 | 170 | private |
171 | + | |
172 | + def parser_params(params) | |
173 | + params.select{|k,v| ALLOWED_PARAMETERS.include?(k)} | |
174 | + end | |
168 | 175 | |
169 | 176 | def default_limit |
170 | 177 | 20 | ... | ... |