mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-11-10 10:09:02 +00:00
Add is_muted
to notifications
This commit is contained in:
parent
282f492cd5
commit
7e6f43c0d7
|
@ -84,12 +84,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
|
||||||
|
|
||||||
# Note: :relationships contain user mutes (needed for :muted flag in :status)
|
# Note: :relationships contain user mutes (needed for :muted flag in :status)
|
||||||
status_render_opts = %{relationships: opts[:relationships]}
|
status_render_opts = %{relationships: opts[:relationships]}
|
||||||
|
account = AccountView.render("show.json", %{user: actor, for: reading_user})
|
||||||
account =
|
|
||||||
AccountView.render(
|
|
||||||
"show.json",
|
|
||||||
%{user: actor, for: reading_user}
|
|
||||||
)
|
|
||||||
|
|
||||||
response = %{
|
response = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
@ -97,6 +92,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
|
||||||
created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at),
|
created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at),
|
||||||
account: account,
|
account: account,
|
||||||
pleroma: %{
|
pleroma: %{
|
||||||
|
is_muted: User.mutes?(reading_user, actor),
|
||||||
is_seen: notification.seen
|
is_seen: notification.seen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:chat_mention",
|
type: "pleroma:chat_mention",
|
||||||
account: AccountView.render("show.json", %{user: user, for: recipient}),
|
account: AccountView.render("show.json", %{user: user, for: recipient}),
|
||||||
chat_message: MessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}),
|
chat_message: MessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}),
|
||||||
|
@ -68,7 +68,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "mention",
|
type: "mention",
|
||||||
account:
|
account:
|
||||||
AccountView.render("show.json", %{
|
AccountView.render("show.json", %{
|
||||||
|
@ -92,7 +92,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "favourite",
|
type: "favourite",
|
||||||
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
||||||
status: StatusView.render("show.json", %{activity: create_activity, for: user}),
|
status: StatusView.render("show.json", %{activity: create_activity, for: user}),
|
||||||
|
@ -112,7 +112,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "reblog",
|
type: "reblog",
|
||||||
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
||||||
status: StatusView.render("show.json", %{activity: reblog_activity, for: user}),
|
status: StatusView.render("show.json", %{activity: reblog_activity, for: user}),
|
||||||
|
@ -130,7 +130,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "follow",
|
type: "follow",
|
||||||
account: AccountView.render("show.json", %{user: follower, for: followed}),
|
account: AccountView.render("show.json", %{user: follower, for: followed}),
|
||||||
created_at: Utils.to_masto_date(notification.inserted_at)
|
created_at: Utils.to_masto_date(notification.inserted_at)
|
||||||
|
@ -171,7 +171,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "move",
|
type: "move",
|
||||||
account: AccountView.render("show.json", %{user: old_user, for: follower}),
|
account: AccountView.render("show.json", %{user: old_user, for: follower}),
|
||||||
target: AccountView.render("show.json", %{user: new_user, for: follower}),
|
target: AccountView.render("show.json", %{user: new_user, for: follower}),
|
||||||
|
@ -196,7 +196,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
pleroma: %{is_seen: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:emoji_reaction",
|
type: "pleroma:emoji_reaction",
|
||||||
emoji: "☕",
|
emoji: "☕",
|
||||||
account: AccountView.render("show.json", %{user: other_user, for: user}),
|
account: AccountView.render("show.json", %{user: other_user, for: user}),
|
||||||
|
@ -206,4 +206,26 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
test_notifications_rendering([notification], user, [expected])
|
test_notifications_rendering([notification], user, [expected])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "muted notification" do
|
||||||
|
user = insert(:user)
|
||||||
|
another_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, _} = Pleroma.UserRelationship.create_mute(user, another_user)
|
||||||
|
{:ok, create_activity} = CommonAPI.post(user, %{status: "hey"})
|
||||||
|
{:ok, favorite_activity} = CommonAPI.favorite(another_user, create_activity.id)
|
||||||
|
{:ok, [notification]} = Notification.create_notifications(favorite_activity)
|
||||||
|
create_activity = Activity.get_by_id(create_activity.id)
|
||||||
|
|
||||||
|
expected = %{
|
||||||
|
id: to_string(notification.id),
|
||||||
|
pleroma: %{is_seen: false, is_muted: true},
|
||||||
|
type: "favourite",
|
||||||
|
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
||||||
|
status: StatusView.render("show.json", %{activity: create_activity, for: user}),
|
||||||
|
created_at: Utils.to_masto_date(notification.inserted_at)
|
||||||
|
}
|
||||||
|
|
||||||
|
test_notifications_rendering([notification], user, [expected])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue