Push.Impl: support edits
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
3f1c31b7cd
commit
1b238a4fad
|
@ -16,7 +16,7 @@ defmodule Pleroma.Web.Push.Impl do
|
||||||
require Logger
|
require Logger
|
||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
|
|
||||||
@types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact"]
|
@types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact", "Update"]
|
||||||
|
|
||||||
@doc "Performs sending notifications for user subscriptions"
|
@doc "Performs sending notifications for user subscriptions"
|
||||||
@spec perform(Notification.t()) :: list(any) | :error | {:error, :unknown_type}
|
@spec perform(Notification.t()) :: list(any) | :error | {:error, :unknown_type}
|
||||||
|
@ -174,6 +174,15 @@ def format_body(
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def format_body(
|
||||||
|
%{activity: %{data: %{"type" => "Update"}}},
|
||||||
|
actor,
|
||||||
|
_object,
|
||||||
|
_mastodon_type
|
||||||
|
) do
|
||||||
|
"@#{actor.nickname} edited a status"
|
||||||
|
end
|
||||||
|
|
||||||
def format_title(activity, mastodon_type \\ nil)
|
def format_title(activity, mastodon_type \\ nil)
|
||||||
|
|
||||||
def format_title(%{activity: %{data: %{"directMessage" => true}}}, _mastodon_type) do
|
def format_title(%{activity: %{data: %{"directMessage" => true}}}, _mastodon_type) do
|
||||||
|
@ -187,6 +196,7 @@ def format_title(%{type: type}, mastodon_type) do
|
||||||
"follow_request" -> "New Follow Request"
|
"follow_request" -> "New Follow Request"
|
||||||
"reblog" -> "New Repeat"
|
"reblog" -> "New Repeat"
|
||||||
"favourite" -> "New Favorite"
|
"favourite" -> "New Favorite"
|
||||||
|
"update" -> "New Update"
|
||||||
"pleroma:chat_mention" -> "New Chat Message"
|
"pleroma:chat_mention" -> "New Chat Message"
|
||||||
"pleroma:emoji_reaction" -> "New Reaction"
|
"pleroma:emoji_reaction" -> "New Reaction"
|
||||||
type -> "New #{String.capitalize(type || "event")}"
|
type -> "New #{String.capitalize(type || "event")}"
|
||||||
|
|
|
@ -202,6 +202,21 @@ test "renders title and body for pleroma:emoji_reaction activity" do
|
||||||
"New Reaction"
|
"New Reaction"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "renders title and body for update activity" do
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.post(user, %{status: "lorem ipsum"})
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.update(user, activity, %{status: "edited status"})
|
||||||
|
object = Object.normalize(activity, fetch: false)
|
||||||
|
|
||||||
|
assert Impl.format_body(%{activity: activity, type: "update"}, user, object) ==
|
||||||
|
"@#{user.nickname} edited a status"
|
||||||
|
|
||||||
|
assert Impl.format_title(%{activity: activity, type: "update"}) ==
|
||||||
|
"New Update"
|
||||||
|
end
|
||||||
|
|
||||||
test "renders title for create activity with direct visibility" do
|
test "renders title for create activity with direct visibility" do
|
||||||
user = insert(:user, nickname: "Bob")
|
user = insert(:user, nickname: "Bob")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue