about summary refs log tree commit diff
path: root/app/controllers/api/v2/search_controller.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-09-13 16:11:13 +0200
committerGitHub <noreply@github.com>2019-09-13 16:11:13 +0200
commit18331fefa2246facc818226043b1f9cc67cf6c1a (patch)
tree38b9fa73e03c34bca84080f822eb8b3bc327ed09 /app/controllers/api/v2/search_controller.rb
parentcf2b708e6bf46db592199b757db9747005f6984d (diff)
Remove deprecated `GET /api/v1/search` API (#11823)
Use `GET /api/v2/search` instead
Diffstat (limited to 'app/controllers/api/v2/search_controller.rb')
-rw-r--r--app/controllers/api/v2/search_controller.rb28
1 files changed, 26 insertions, 2 deletions
diff --git a/app/controllers/api/v2/search_controller.rb b/app/controllers/api/v2/search_controller.rb
index 9aa6edc69..c14cd22d7 100644
--- a/app/controllers/api/v2/search_controller.rb
+++ b/app/controllers/api/v2/search_controller.rb
@@ -1,8 +1,32 @@
 # frozen_string_literal: true
 
-class Api::V2::SearchController < Api::V1::SearchController
+class Api::V2::SearchController < Api::BaseController
+  include Authorization
+
+  RESULTS_LIMIT = 20
+
+  before_action -> { doorkeeper_authorize! :read, :'read:search' }
+  before_action :require_user!
+
+  respond_to :json
+
   def index
     @search = Search.new(search_results)
-    render json: @search, serializer: REST::V2::SearchSerializer
+    render json: @search, serializer: REST::SearchSerializer
+  end
+
+  private
+
+  def search_results
+    SearchService.new.call(
+      params[:q],
+      current_account,
+      limit_param(RESULTS_LIMIT),
+      search_params.merge(resolve: truthy_param?(:resolve))
+    )
+  end
+
+  def search_params
+    params.permit(:type, :offset, :min_id, :max_id, :account_id)
   end
 end