Actually notify of bites
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
d47447afae
commit
a7ef06e947
2 changed files with 26 additions and 25 deletions
|
@ -473,35 +473,36 @@ def handle(
|
|||
} = object,
|
||||
meta
|
||||
) do
|
||||
with %User{} = biting <- User.get_cached_by_ap_id(biting_user),
|
||||
%User{} = bitten <- User.get_cached_by_ap_id(bitten_user),
|
||||
{:previous_bite, previous_bite} <-
|
||||
{:previous_bite, Utils.fetch_latest_bite(biting, bitten, object)},
|
||||
{:reverse_bite, reverse_bite} <-
|
||||
{:reverse_bite, Utils.fetch_latest_bite(bitten, biting)},
|
||||
{:can_bite, true, _} <- {:can_bite, can_bite?(previous_bite, reverse_bite), bitten} do
|
||||
if bitten.local do
|
||||
{:ok, accept_data, _} = Builder.accept(bitten, object)
|
||||
{:ok, _activity, _} = Pipeline.common_pipeline(accept_data, local: true)
|
||||
end
|
||||
meta =
|
||||
with %User{} = biting <- User.get_cached_by_ap_id(biting_user),
|
||||
%User{} = bitten <- User.get_cached_by_ap_id(bitten_user),
|
||||
{:previous_bite, previous_bite} <-
|
||||
{:previous_bite, Utils.fetch_latest_bite(biting, bitten, object)},
|
||||
{:reverse_bite, reverse_bite} <-
|
||||
{:reverse_bite, Utils.fetch_latest_bite(bitten, biting)},
|
||||
{:can_bite, true, _} <- {:can_bite, can_bite?(previous_bite, reverse_bite), bitten} do
|
||||
if bitten.local do
|
||||
{:ok, accept_data, _} = Builder.accept(bitten, object)
|
||||
{:ok, _activity, _} = Pipeline.common_pipeline(accept_data, local: true)
|
||||
end
|
||||
|
||||
if reverse_bite do
|
||||
Notification.dismiss(reverse_bite)
|
||||
end
|
||||
if reverse_bite do
|
||||
Notification.dismiss(reverse_bite)
|
||||
end
|
||||
|
||||
{:ok, notifications} = Notification.create_notifications(object)
|
||||
{:ok, notifications} = Notification.create_notifications(object)
|
||||
|
||||
meta
|
||||
|> add_notifications(notifications)
|
||||
else
|
||||
{:can_bite, false, bitten} ->
|
||||
{:ok, reject_data, _} = Builder.reject(bitten, object)
|
||||
{:ok, _activity, _} = Pipeline.common_pipeline(reject_data, local: true)
|
||||
meta
|
||||
|> add_notifications(notifications)
|
||||
else
|
||||
{:can_bite, false, bitten} ->
|
||||
{:ok, reject_data, _} = Builder.reject(bitten, object)
|
||||
{:ok, _activity, _} = Pipeline.common_pipeline(reject_data, local: true)
|
||||
meta
|
||||
|
||||
_ ->
|
||||
meta
|
||||
end
|
||||
_ ->
|
||||
meta
|
||||
end
|
||||
|
||||
updated_object = Activity.get_by_ap_id(bite_id)
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ defmodule Pleroma.Web.Push.Impl do
|
|||
import Ecto.Query
|
||||
|
||||
@body_chars 140
|
||||
@types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact", "Update"]
|
||||
@types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact", "Update", "Bite"]
|
||||
|
||||
@doc "Builds webpush notification payloads for the subscriptions enabled by the receiving user"
|
||||
@spec build(Notification.t()) ::
|
||||
|
|
Loading…
Reference in a new issue