Commit 64577e79450ddeb7674bec87a10decf445b414d4
1 parent
e9a85337
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
changing api parameter categories_ids by category_ids
Showing
2 changed files
with
11 additions
and
4 deletions
Show diff stats
lib/noosfero/api/helpers.rb
@@ -143,9 +143,6 @@ require 'grape' | @@ -143,9 +143,6 @@ require 'grape' | ||
143 | else | 143 | else |
144 | articles = articles.published | 144 | articles = articles.published |
145 | end | 145 | end |
146 | - if params[:categories_ids] | ||
147 | - articles = articles.joins(:categories).where('category_id in (?)', params[:categories_ids]) | ||
148 | - end | ||
149 | articles | 146 | articles |
150 | end | 147 | end |
151 | 148 | ||
@@ -248,6 +245,15 @@ require 'grape' | @@ -248,6 +245,15 @@ require 'grape' | ||
248 | end | 245 | end |
249 | end | 246 | end |
250 | 247 | ||
248 | + def by_categories(scope, params) | ||
249 | + category_ids = params[:category_ids] | ||
250 | + if category_ids.nil? | ||
251 | + scope | ||
252 | + else | ||
253 | + scope.joins(:categories).where(:categories => {:id => category_ids}) | ||
254 | + end | ||
255 | + end | ||
256 | + | ||
251 | def select_filtered_collection_of(object, method, params) | 257 | def select_filtered_collection_of(object, method, params) |
252 | conditions = make_conditions_with_parameter(params) | 258 | conditions = make_conditions_with_parameter(params) |
253 | order = make_order_with_parameters(object,method,params) | 259 | order = make_order_with_parameters(object,method,params) |
@@ -257,6 +263,7 @@ require 'grape' | @@ -257,6 +263,7 @@ require 'grape' | ||
257 | 263 | ||
258 | objects = object.send(method) | 264 | objects = object.send(method) |
259 | objects = by_reference(objects, params) | 265 | objects = by_reference(objects, params) |
266 | + objects = by_categories(objects, params) | ||
260 | 267 | ||
261 | objects = objects.where(conditions).where(timestamp).page(page_number).per_page(per_page).reorder(order) | 268 | objects = objects.where(conditions).where(timestamp).page(page_number).per_page(per_page).reorder(order) |
262 | 269 |
test/unit/api/articles_test.rb
@@ -546,7 +546,7 @@ class ArticlesTest < ActiveSupport::TestCase | @@ -546,7 +546,7 @@ class ArticlesTest < ActiveSupport::TestCase | ||
546 | e2.categories << c2 | 546 | e2.categories << c2 |
547 | e1.save! | 547 | e1.save! |
548 | e2.save! | 548 | e2.save! |
549 | - params['categories_ids[]']=c1.id | 549 | + params['category_ids[]']=c1.id |
550 | params['content_type']='Event' | 550 | params['content_type']='Event' |
551 | get "api/v1/communities/#{co.id}/articles?#{params.to_query}" | 551 | get "api/v1/communities/#{co.id}/articles?#{params.to_query}" |
552 | json = JSON.parse(last_response.body) | 552 | json = JSON.parse(last_response.body) |