%Token{} may not be in the conn, so avoid breaking the ability to post statuses in...
authorMark Felder <feld@feld.me>
Thu, 11 Feb 2021 20:15:25 +0000 (14:15 -0600)
committerMark Felder <feld@feld.me>
Thu, 11 Feb 2021 20:15:25 +0000 (14:15 -0600)
lib/pleroma/web/mastodon_api/controllers/status_controller.ex

index 47a5bbd60d51e387e632932136376c5dd5293e33..6eb518684a9f39dbef9488c05361b0f428230d46 100644 (file)
@@ -132,7 +132,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   # Creates a scheduled status when `scheduled_at` param is present and it's far enough
   def create(
         %{
-          assigns: %{user: user, token: %{app_id: app_id}},
+          assigns: %{user: user},
           body_params: %{status: _, scheduled_at: scheduled_at} = params
         } = conn,
         _
@@ -140,7 +140,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
       when not is_nil(scheduled_at) do
     params =
       Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
-      |> add_application(app_id)
+      |> add_application(conn)
 
     attrs = %{
       params: Map.new(params, fn {key, value} -> {to_string(key), value} end),
@@ -164,13 +164,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
 
   # Creates a regular status
   def create(
-        %{assigns: %{user: user, token: %{app_id: app_id}}, body_params: %{status: _} = params} =
-          conn,
+        %{assigns: %{user: user}, body_params: %{status: _} = params} = conn,
         _
       ) do
     params =
       Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
-      |> add_application(app_id)
+      |> add_application(conn)
 
     with {:ok, activity} <- CommonAPI.post(user, params) do
       try_render(conn, "show.json",
@@ -423,7 +422,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
     )
   end
 
-  defp add_application(params, app_id) do
+  defp add_application(params, %{assigns: %{token: %{app_id: app_id}}} = _conn) do
     params |> Map.put(:application, Pleroma.Web.OAuth.App.get_app_by_id(app_id))
   end
+
+  defp add_application(params, _), do: Map.put(params, :application, %{name: "Web", website: nil})
 end