forked from AkkomaGang/akkoma
notifications: fix notification generation for non-create activities
in 300d94c62
, an Object.normalize() call was introduced. calling Object.normalize()
on an activity with a non-object URI (say, a user) causes Really Bad Things to happen.
so don't do that.
This commit is contained in:
parent
ddd04d1c52
commit
6426301407
1 changed files with 8 additions and 2 deletions
|
@ -127,8 +127,7 @@ def dismiss(%{id: user_id} = _user, id) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
|
def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do
|
||||||
when type in ["Create", "Like", "Announce", "Follow"] do
|
|
||||||
object = Object.normalize(activity)
|
object = Object.normalize(activity)
|
||||||
|
|
||||||
unless object && object.data["type"] == "Answer" do
|
unless object && object.data["type"] == "Answer" do
|
||||||
|
@ -140,6 +139,13 @@ def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
|
||||||
|
when type in ["Like", "Announce", "Follow"] do
|
||||||
|
users = get_notified_from_activity(activity)
|
||||||
|
notifications = Enum.map(users, fn user -> create_notification(activity, user) end)
|
||||||
|
{:ok, notifications}
|
||||||
|
end
|
||||||
|
|
||||||
def create_notifications(_), do: {:ok, []}
|
def create_notifications(_), do: {:ok, []}
|
||||||
|
|
||||||
# TODO move to sql, too.
|
# TODO move to sql, too.
|
||||||
|
|
Loading…
Reference in a new issue