mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-12-22 08:06:55 +00:00
Add group_key
to notifications
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
360dd34f19
commit
17b69c43d5
4 changed files with 20 additions and 0 deletions
1
changelog.d/notifications-group-key.add
Normal file
1
changelog.d/notifications-group-key.add
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add `group_key` to notifications
|
|
@ -158,6 +158,10 @@ defmodule Pleroma.Web.ApiSpec.NotificationOperation do
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
id: %Schema{type: :string},
|
id: %Schema{type: :string},
|
||||||
|
group_key: %Schema{
|
||||||
|
type: :string,
|
||||||
|
description: "Group key shared by similar notifications"
|
||||||
|
},
|
||||||
type: notification_type(),
|
type: notification_type(),
|
||||||
created_at: %Schema{type: :string, format: :"date-time"},
|
created_at: %Schema{type: :string, format: :"date-time"},
|
||||||
account: %Schema{
|
account: %Schema{
|
||||||
|
@ -180,6 +184,7 @@ defmodule Pleroma.Web.ApiSpec.NotificationOperation do
|
||||||
},
|
},
|
||||||
example: %{
|
example: %{
|
||||||
"id" => "34975861",
|
"id" => "34975861",
|
||||||
|
"group-key" => "ungrouped-34975861",
|
||||||
"type" => "mention",
|
"type" => "mention",
|
||||||
"created_at" => "2019-11-23T07:49:02.064Z",
|
"created_at" => "2019-11-23T07:49:02.064Z",
|
||||||
"account" => Account.schema().example,
|
"account" => Account.schema().example,
|
||||||
|
|
|
@ -95,6 +95,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
|
||||||
|
|
||||||
response = %{
|
response = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-" <> to_string(notification.id),
|
||||||
type: notification.type,
|
type: notification.type,
|
||||||
created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at),
|
created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at),
|
||||||
account: account,
|
account: account,
|
||||||
|
|
|
@ -56,6 +56,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: 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}),
|
||||||
|
@ -75,6 +76,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "mention",
|
type: "mention",
|
||||||
account:
|
account:
|
||||||
|
@ -99,6 +101,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: 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}),
|
||||||
|
@ -119,6 +122,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: 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}),
|
||||||
|
@ -137,6 +141,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: 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}),
|
||||||
|
@ -165,6 +170,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: 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}),
|
||||||
|
@ -190,6 +196,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:emoji_reaction",
|
type: "pleroma:emoji_reaction",
|
||||||
emoji: "☕",
|
emoji: "☕",
|
||||||
|
@ -229,6 +236,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:emoji_reaction",
|
type: "pleroma:emoji_reaction",
|
||||||
emoji: ":dinosaur:",
|
emoji: ":dinosaur:",
|
||||||
|
@ -248,6 +256,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "poll",
|
type: "poll",
|
||||||
account:
|
account:
|
||||||
|
@ -274,6 +283,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "pleroma:report",
|
type: "pleroma:report",
|
||||||
account: AccountView.render("show.json", %{user: reporting_user, for: moderator_user}),
|
account: AccountView.render("show.json", %{user: reporting_user, for: moderator_user}),
|
||||||
|
@ -300,6 +310,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "update",
|
type: "update",
|
||||||
account: AccountView.render("show.json", %{user: user, for: repeat_user}),
|
account: AccountView.render("show.json", %{user: user, for: repeat_user}),
|
||||||
|
@ -322,6 +333,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: true, is_muted: true},
|
pleroma: %{is_seen: true, is_muted: true},
|
||||||
type: "favourite",
|
type: "favourite",
|
||||||
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
account: AccountView.render("show.json", %{user: another_user, for: user}),
|
||||||
|
@ -345,6 +357,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: to_string(notification.id),
|
id: to_string(notification.id),
|
||||||
|
group_key: "ungrouped-#{to_string(notification.id)}",
|
||||||
pleroma: %{is_seen: false, is_muted: false},
|
pleroma: %{is_seen: false, is_muted: false},
|
||||||
type: "status",
|
type: "status",
|
||||||
account:
|
account:
|
||||||
|
|
Loading…
Reference in a new issue