Fix /api/v1/accounts/search by splitting account search into its own function
authorMark Felder <feld@FreeBSd.org>
Mon, 30 Oct 2017 03:37:07 +0000 (03:37 +0000)
committerMark Felder <feld@FreeBSd.org>
Mon, 30 Oct 2017 03:37:07 +0000 (03:37 +0000)
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
lib/pleroma/web/router.ex

index 971772810ea9f7e56728932b1dd8f37b8f3b3262..dacb0ebe35676648be0848fbb36781fcd1c19171 100644 (file)
@@ -308,7 +308,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
     end
   end
 
-  def search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
+  def dousersearch(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
     if params["resolve"] == "true" do
       User.get_or_fetch_by_nickname(query)
     end
@@ -317,6 +317,10 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
       where: fragment("(to_tsvector('english', ?) || to_tsvector('english', ?)) @@ plainto_tsquery('english', ?)", u.nickname, u.name, ^query),
       limit: 20
     accounts = Repo.all(q)
+  end
+
+  def search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
+    accounts = Pleroma.Web.MastodonAPI.MastodonAPIController.dousersearch(conn, params)
 
     q = from a in Activity,
       where: fragment("?->>'type' = 'Create'", a.data),
@@ -333,6 +337,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
     json(conn, res)
   end
 
+  def accountsearch(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
+    accounts = Pleroma.Web.MastodonAPI.MastodonAPIController.dousersearch(conn, params)
+
+    res = AccountView.render("accounts.json", users: accounts, for: user, as: :user)
+
+    json(conn, res)
+  end
+
   def favourites(%{assigns: %{user: user}} = conn, params) do
     params = conn
     |> Map.put("type", "Create")
index 45c47eefb11eb8bd35e25a9878028cbd593839a0..53f4a45e3b72920dc58e79ba37285a38c44b47e7 100644 (file)
@@ -55,6 +55,7 @@ defmodule Pleroma.Web.Router do
 
     get "/accounts/verify_credentials", MastodonAPIController, :verify_credentials
     get "/accounts/relationships", MastodonAPIController, :relationships
+    get "/accounts/search", MastodonAPIController, :accountsearch
     post "/accounts/:id/follow", MastodonAPIController, :follow
     post "/accounts/:id/unfollow", MastodonAPIController, :unfollow
     post "/accounts/:id/block", MastodonAPIController, :relationship_noop