Commit 37ffee3bd22abe0d4ccffa1562103ed2b36aefd2
1 parent
789695b2
Exists in
staging
and in
4 other branches
Added search by profile
Showing
2 changed files
with
17 additions
and
3 deletions
Show diff stats
lib/noosfero/api/v1/search.rb
@@ -11,11 +11,14 @@ module Noosfero | @@ -11,11 +11,14 @@ module Noosfero | ||
11 | # APIHelpers | 11 | # APIHelpers |
12 | asset = :articles | 12 | asset = :articles |
13 | context = environment | 13 | context = environment |
14 | - scope = environment.articles.public | 14 | + profile = environment.profiles.find(params[:profile_id]) if params[:profile_id] |
15 | + | ||
16 | + scope = profile.articles.public || scope = environment.articles.public | ||
15 | 17 | ||
16 | scope = scope.where(:type => params[:type]) if params[:type] && !(params[:type] == 'Article') | 18 | scope = scope.where(:type => params[:type]) if params[:type] && !(params[:type] == 'Article') |
17 | 19 | ||
18 | category = params[:category] || "" | 20 | category = params[:category] || "" |
21 | + | ||
19 | query = params[:query] || "" | 22 | query = params[:query] || "" |
20 | order = "more_recent" | 23 | order = "more_recent" |
21 | 24 |
test/unit/api/search_test.rb
@@ -67,7 +67,6 @@ class SearchTest < ActiveSupport::TestCase | @@ -67,7 +67,6 @@ class SearchTest < ActiveSupport::TestCase | ||
67 | get "/api/v1/search/article?query=Article&limit=3" | 67 | get "/api/v1/search/article?query=Article&limit=3" |
68 | json = JSON.parse(last_response.body) | 68 | json = JSON.parse(last_response.body) |
69 | 69 | ||
70 | - | ||
71 | assert_equal 3, json['results'].size | 70 | assert_equal 3, json['results'].size |
72 | end | 71 | end |
73 | 72 | ||
@@ -80,8 +79,20 @@ class SearchTest < ActiveSupport::TestCase | @@ -80,8 +79,20 @@ class SearchTest < ActiveSupport::TestCase | ||
80 | get "/api/v1/search/article?query=Article&limit=3&page=2" | 79 | get "/api/v1/search/article?query=Article&limit=3&page=2" |
81 | json = JSON.parse(last_response.body) | 80 | json = JSON.parse(last_response.body) |
82 | 81 | ||
83 | - | ||
84 | assert_equal 2, json['results'].size | 82 | assert_equal 2, json['results'].size |
85 | end | 83 | end |
86 | 84 | ||
85 | + should 'search articles in profile' do | ||
86 | + person1 = fast_create(Person) | ||
87 | + person2 = fast_create(Person) | ||
88 | + | ||
89 | + art1 = create_article_with_optional_category("Article 1 for profile #{person1.id}", person1) | ||
90 | + art2 = create_article_with_optional_category("Article for profile #{person2.id}", person2) | ||
91 | + art3 = create_article_with_optional_category("Article 2 for profile #{person1.id}", person1) | ||
92 | + | ||
93 | + get "/api/v1/search/article?query=Article&profile_id=#{person1.id}" | ||
94 | + json = JSON.parse(last_response.body) | ||
95 | + # Only for person1 | ||
96 | + assert_equal 2, json['results'].size | ||
97 | + end | ||
87 | end | 98 | end |
88 | \ No newline at end of file | 99 | \ No newline at end of file |