Refactor to store user ap_id, add tests

This commit is contained in:
Karen Konou 2019-03-15 14:06:58 +01:00
commit da53c079db
8 changed files with 88 additions and 17 deletions

View file

@ -300,17 +300,21 @@ defmodule Pleroma.Web.CommonAPI do
end
end
def hide_reblogs(user, id) do
if id not in user.info.muted_reblogs do
info_changeset = User.Info.add_reblog_mute(user.info, id)
def hide_reblogs(user, muted) do
ap_id = muted.ap_id
if ap_id not in user.info.muted_reblogs do
info_changeset = User.Info.add_reblog_mute(user.info, ap_id)
changeset = Ecto.Changeset.change(user) |> Ecto.Changeset.put_embed(:info, info_changeset)
User.update_and_set_cache(changeset)
end
end
def show_reblogs(user, id) do
if id in user.info.muted_reblogs do
info_changeset = User.Info.remove_reblog_mute(user.info, id)
def show_reblogs(user, muted) do
ap_id = muted.ap_id
if ap_id in user.info.muted_reblogs do
info_changeset = User.Info.remove_reblog_mute(user.info, ap_id)
changeset = Ecto.Changeset.change(user) |> Ecto.Changeset.put_embed(:info, info_changeset)
User.update_and_set_cache(changeset)
end

View file

@ -730,13 +730,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|> render("relationship.json", %{user: follower, target: followed})
else
true ->
case conn.params["reblogs"] do
true -> CommonAPI.show_reblogs(follower, id)
false -> CommonAPI.hide_reblogs(follower, id)
end
followed = User.get_cached_by_id(id)
{:ok, follower} =
case conn.params["reblogs"] do
true -> CommonAPI.show_reblogs(follower, followed)
false -> CommonAPI.hide_reblogs(follower, followed)
end
conn
|> put_view(AccountView)
|> render("relationship.json", %{user: follower, target: followed})

View file

@ -200,7 +200,7 @@ defmodule Pleroma.Web.Streamer do
user = User.get_cached_by_ap_id(socket.assigns[:user].ap_id)
blocks = user.info.blocks || []
mutes = user.info.mutes || []
reblog_mutes = user.info.reblog_mutes || []
reblog_mutes = user.info.muted_reblogs || []
parent = Object.normalize(item.data["object"])