Streamer: Don't crash on streaming chat notifications
This commit is contained in:
parent
2c25087d20
commit
dbd07d29a3
@ -467,12 +467,13 @@ defmodule Pleroma.Web.CommonAPI do
|
|||||||
{:ok, activity}
|
{:ok, activity}
|
||||||
end
|
end
|
||||||
|
|
||||||
def thread_muted?(%{id: nil} = _user, _activity), do: false
|
def thread_muted?(%User{id: user_id}, %{data: %{"context" => context}})
|
||||||
|
when is_binary("context") do
|
||||||
def thread_muted?(user, activity) do
|
ThreadMute.exists?(user_id, context)
|
||||||
ThreadMute.exists?(user.id, activity.data["context"])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def thread_muted?(_, _), do: false
|
||||||
|
|
||||||
def report(user, data) do
|
def report(user, data) do
|
||||||
with {:ok, account} <- get_reported_account(data.account_id),
|
with {:ok, account} <- get_reported_account(data.account_id),
|
||||||
{:ok, {content_html, _, _}} <- make_report_content_html(data[:comment]),
|
{:ok, {content_html, _, _}} <- make_report_content_html(data[:comment]),
|
||||||
|
@ -126,6 +126,21 @@ defmodule Pleroma.Web.StreamerTest do
|
|||||||
refute Streamer.filtered_by_user?(user, notify)
|
refute Streamer.filtered_by_user?(user, notify)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "it sends chat message notifications to the 'user:notification' stream", %{user: user} do
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey")
|
||||||
|
|
||||||
|
notify =
|
||||||
|
Repo.get_by(Pleroma.Notification, user_id: user.id, activity_id: create_activity.id)
|
||||||
|
|> Repo.preload(:activity)
|
||||||
|
|
||||||
|
Streamer.get_topic_and_add_socket("user:notification", user)
|
||||||
|
Streamer.stream("user:notification", notify)
|
||||||
|
assert_receive {:render_with_user, _, _, ^notify}
|
||||||
|
refute Streamer.filtered_by_user?(user, notify)
|
||||||
|
end
|
||||||
|
|
||||||
test "it doesn't send notify to the 'user:notification' stream when a user is blocked", %{
|
test "it doesn't send notify to the 'user:notification' stream when a user is blocked", %{
|
||||||
user: user
|
user: user
|
||||||
} do
|
} do
|
||||||
|
Loading…
Reference in New Issue
Block a user