diff options
author | lain <lain@soykaf.club> | 2021-02-28 16:17:34 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2021-02-28 16:17:34 +0000 |
commit | e6a14e1cd10a52450eaf3d1ba258eac4042d82a9 (patch) | |
tree | 79c9920f4b01dc45a7292efcdaf9e97c7391a373 /lib/pleroma/web/mastodon_api/controllers/status_controller.ex | |
parent | d0823d7f1e95c91a53545fae9299e5bcc6eaf758 (diff) | |
parent | 0faf8dbef8f0d77fdd42b36ade4d55c42f0ccc8c (diff) |
Merge branch 'feat/client_app_details' into 'develop'
Support application field
See merge request pleroma/pleroma!3311
Diffstat (limited to 'lib/pleroma/web/mastodon_api/controllers/status_controller.ex')
-rw-r--r-- | lib/pleroma/web/mastodon_api/controllers/status_controller.ex | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 4cf2ee35c..b8a7b2a0a 100644 --- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex @@ -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 @@ -138,7 +139,9 @@ 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]) + params = + Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id]) + |> put_application(conn) attrs = %{ params: Map.new(params, fn {key, value} -> {to_string(key), value} end), @@ -162,7 +165,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do # Creates a regular status def create(%{assigns: %{user: user}, body_params: %{status: _} = params} = conn, _) do - params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id]) + params = + Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id]) + |> put_application(conn) with {:ok, activity} <- CommonAPI.post(user, params) do try_render(conn, "show.json", @@ -414,4 +419,15 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do as: :activity ) end + + defp put_application(params, %{assigns: %{token: %Token{user: %User{} = user} = token}} = _conn) do + if user.disclose_client do + %{client_name: client_name, website: website} = Repo.preload(token, :app).app + Map.put(params, :application, %{type: "Application", name: client_name, url: website}) + else + Map.put(params, :application, nil) + end + end + + defp put_application(params, _), do: Map.put(params, :application, nil) end |