diff options
| author | marcin mikołajczak <me@mkljczk.pl> | 2024-09-15 10:07:52 +0000 | 
|---|---|---|
| committer | marcin mikołajczak <me@mkljczk.pl> | 2024-09-15 10:07:52 +0000 | 
| commit | 8250a9764ea07a69a701401fd00f6d55e0ef2003 (patch) | |
| tree | 805e69dc94218e128d1d7b074f8685692f72ecd0 | |
| parent | c1a1150888f48448d353897327d4d3f050bec9b4 (diff) | |
| parent | 17b69c43d5ed6ba867f5fb1da15f6af9aa7c5d00 (diff) | |
| download | pleroma-8250a9764ea07a69a701401fd00f6d55e0ef2003.tar.gz pleroma-8250a9764ea07a69a701401fd00f6d55e0ef2003.zip  | |
Merge branch 'notifications-group-key' into 'develop'
Add `group_key` to notifications
See merge request pleroma/pleroma!4262
4 files changed, 20 insertions, 0 deletions
diff --git a/changelog.d/notifications-group-key.add b/changelog.d/notifications-group-key.add new file mode 100644 index 000000000..386927f4a --- /dev/null +++ b/changelog.d/notifications-group-key.add @@ -0,0 +1 @@ +Add `group_key` to notifications
\ No newline at end of file diff --git a/lib/pleroma/web/api_spec/operations/notification_operation.ex b/lib/pleroma/web/api_spec/operations/notification_operation.ex index 2dc0f66df..94d1f6b82 100644 --- a/lib/pleroma/web/api_spec/operations/notification_operation.ex +++ b/lib/pleroma/web/api_spec/operations/notification_operation.ex @@ -158,6 +158,10 @@ defmodule Pleroma.Web.ApiSpec.NotificationOperation do        type: :object,        properties: %{          id: %Schema{type: :string}, +        group_key: %Schema{ +          type: :string, +          description: "Group key shared by similar notifications" +        },          type: notification_type(),          created_at: %Schema{type: :string, format: :"date-time"},          account: %Schema{ @@ -180,6 +184,7 @@ defmodule Pleroma.Web.ApiSpec.NotificationOperation do        },        example: %{          "id" => "34975861", +        "group-key" => "ungrouped-34975861",          "type" => "mention",          "created_at" => "2019-11-23T07:49:02.064Z",          "account" => Account.schema().example, diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 3f2478719..c277af98b 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -95,6 +95,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do      response = %{        id: to_string(notification.id), +      group_key: "ungrouped-" <> to_string(notification.id),        type: notification.type,        created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at),        account: account, diff --git a/test/pleroma/web/mastodon_api/views/notification_view_test.exs b/test/pleroma/web/mastodon_api/views/notification_view_test.exs index 75ab375aa..b1f3523ac 100644 --- a/test/pleroma/web/mastodon_api/views/notification_view_test.exs +++ b/test/pleroma/web/mastodon_api/views/notification_view_test.exs @@ -56,6 +56,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "pleroma:chat_mention",        account: AccountView.render("show.json", %{user: user, for: recipient}), @@ -75,6 +76,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "mention",        account: @@ -99,6 +101,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "favourite",        account: AccountView.render("show.json", %{user: another_user, for: user}), @@ -119,6 +122,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "reblog",        account: AccountView.render("show.json", %{user: another_user, for: user}), @@ -137,6 +141,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "follow",        account: AccountView.render("show.json", %{user: follower, for: followed}), @@ -165,6 +170,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "move",        account: AccountView.render("show.json", %{user: old_user, for: follower}), @@ -190,6 +196,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "pleroma:emoji_reaction",        emoji: "☕", @@ -229,6 +236,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "pleroma:emoji_reaction",        emoji: ":dinosaur:", @@ -248,6 +256,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "poll",        account: @@ -274,6 +283,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "pleroma:report",        account: AccountView.render("show.json", %{user: reporting_user, for: moderator_user}), @@ -300,6 +310,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "update",        account: AccountView.render("show.json", %{user: user, for: repeat_user}), @@ -322,6 +333,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: true, is_muted: true},        type: "favourite",        account: AccountView.render("show.json", %{user: another_user, for: user}), @@ -345,6 +357,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), +      group_key: "ungrouped-#{to_string(notification.id)}",        pleroma: %{is_seen: false, is_muted: false},        type: "status",        account:  | 
