diff --git a/lib/noosfero/api/v1/search.rb b/lib/noosfero/api/v1/search.rb index 6bfbb6c..58a70fc 100644 --- a/lib/noosfero/api/v1/search.rb +++ b/lib/noosfero/api/v1/search.rb @@ -5,7 +5,6 @@ module Noosfero resource :search do resource :article do - paginate per_page: 20, max_per_page: 200 get do # Security checks sanitize_params_hash(params) @@ -14,25 +13,24 @@ module Noosfero context = environment profile = environment.profiles.find(params[:profile_id]) if params[:profile_id] - - scope = profile.nil? ? environment.articles.public : profile.articles.public - + scope = profile.nil? ? environment.articles.is_public : profile.articles.is_public scope = scope.where(:type => params[:type]) if params[:type] && !(params[:type] == 'Article') - scope = scope.where(:parent_id => params[:parent_id]) if params[:parent_id].present? - scope = scope.joins(:categories).where(:categories => {:id => params[:category_ids]}) if params[:category_ids].present? - query = params[:query] || "" order = "more_recent" options = {:filter => order, :template_id => params[:template_id]} + paginate_options = params.select{|k,v| [:page, :per_page].include?(k.to_sym)}.symbolize_keys + paginate_options.each_pair{|k,v| v=v.to_i} + paginate_options[:page]=1 if !paginate_options.keys.include?(:page) + search_result = find_by_contents(asset, context, scope, query, paginate_options, options) articles = search_result[:results] - result = present_articles_paginated(articles) + result = present_articles(articles) result end diff --git a/test/unit/api/search_test.rb b/test/unit/api/search_test.rb index 8dac984..69c7a18 100644 --- a/test/unit/api/search_test.rb +++ b/test/unit/api/search_test.rb @@ -131,8 +131,10 @@ class SearchTest < ActiveSupport::TestCase article2.categories<< category2 get "/api/v1/search/article?category_ids[]=#{category1.id}&category_ids[]=#{category2.id}" json = JSON.parse(last_response.body) + ids = [article1.id, article2.id] assert_equal 2, json['articles'].count - assert_equivalent [article1.id, article2.id], json['articles'].map{|a| a['id']} + assert_includes ids, json['articles'].first["id"] + assert_includes ids, json['articles'].last["id"] end end -- libgit2 0.21.2