App is already preloaded into the token, so avoid an extra query
authorMark Felder <feld@feld.me>
Fri, 12 Feb 2021 18:44:45 +0000 (12:44 -0600)
committerMark Felder <feld@feld.me>
Fri, 12 Feb 2021 18:44:45 +0000 (12:44 -0600)
lib/pleroma/web/mastodon_api/controllers/status_controller.ex
lib/pleroma/web/o_auth/app.ex

index ec3e79ea78ee280f9e045ffc4b83357c5c248ae3..db3f248e51acf6cc53722b825ffec95a542ad220 100644 (file)
@@ -21,6 +21,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.MastodonAPI.AccountView
   alias Pleroma.Web.MastodonAPI.ScheduledActivityView
+  alias Pleroma.Web.OAuth.Token
   alias Pleroma.Web.Plugs.OAuthScopesPlug
   alias Pleroma.Web.Plugs.RateLimiter
 
@@ -419,8 +420,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
     )
   end
 
-  defp put_application(params, %{assigns: %{token: %{app_id: app_id}}} = _conn) do
-    Map.put(params, :application, Pleroma.Web.OAuth.App.get_app_by_id(app_id))
+  defp put_application(params, %{assigns: %{token: %Token{} = token}} = _conn) do
+    %{client_name: client_name, website: website} = Repo.preload(token, :app).app
+    Map.put(params, :application, %{name: client_name, website: website})
   end
 
   defp put_application(params, _), do: Map.put(params, :application, %{name: "Web", website: nil})
index 083b5ce092075cb4602b49c3ad760ac190da06ad..38275001036177a142cb0f2d436242bd2cc9063a 100644 (file)
@@ -146,14 +146,4 @@ defmodule Pleroma.Web.OAuth.App do
         Map.put(acc, key, error)
     end)
   end
-
-  @spec get_app_by_id(pos_integer()) :: {:ok, map()}
-  def get_app_by_id(app_id) do
-    query =
-      __MODULE__
-      |> where([a], a.id == ^app_id)
-      |> select([a], %{name: a.client_name, website: a.website})
-
-    Repo.one!(query)
-  end
 end