X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fmastodon_api%2Fmastodon_api.ex;h=69bc2f0d6e49227b461a3f7f39ad92beee9eba97;hb=cb9b0d3720cdfe5e9987d70d0822032fef7a3d8a;hp=71479550eb61402617bc97d3dd560502135dd4a7;hpb=b221d77a6da07c684bdbc63ddf4500e0d7ffeae8;p=akkoma diff --git a/lib/pleroma/web/mastodon_api/mastodon_api.ex b/lib/pleroma/web/mastodon_api/mastodon_api.ex index 71479550e..69bc2f0d6 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api.ex @@ -24,6 +24,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do with {:ok, follower, _followed, _} <- result do options = cast_params(params) set_reblogs_visibility(options[:reblogs], result) + set_subscription(options[:notify], result) {:ok, follower} end end @@ -36,6 +37,16 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do CommonAPI.show_reblogs(follower, followed) end + defp set_subscription(true, {:ok, follower, followed, _}) do + User.subscribe(follower, followed) + end + + defp set_subscription(false, {:ok, follower, followed, _}) do + User.unsubscribe(follower, followed) + end + + defp set_subscription(_, _), do: {:ok, nil} + @spec get_followers(User.t(), map()) :: list(User.t()) def get_followers(user, params \\ %{}) do user @@ -52,11 +63,16 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do def get_notifications(user, params \\ %{}) do options = cast_params(params) - user - |> Notification.for_user_query(options) - |> restrict(:include_types, options) - |> restrict(:exclude_types, options) - |> restrict(:account_ap_id, options) + query = + user + |> Notification.for_user_query(options) + |> restrict(:include_types, options) + |> restrict(:exclude_types, options) + |> restrict(:account_ap_id, options) + + IO.inspect(Pleroma.Repo.to_sql(:all, query)) + + query |> Pagination.fetch_paginated(params) end @@ -73,7 +89,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do exclude_visibilities: {:array, :string}, reblogs: :boolean, with_muted: :boolean, - account_ap_id: :string + account_ap_id: :string, + notify: :boolean } changeset = cast({%{}, param_types}, params, Map.keys(param_types))