forked from AkkomaGang/akkoma
Merge branch 'notifications-dismiss-api' into 'develop'
Add `/api/v1/notifications/:id/dismiss` endpoint Closes #1673 See merge request pleroma/pleroma!2360
This commit is contained in:
commit
c23532d24b
3 changed files with 22 additions and 3 deletions
|
@ -66,7 +66,8 @@ def clear(%{assigns: %{user: user}} = conn, _params) do
|
||||||
json(conn, %{})
|
json(conn, %{})
|
||||||
end
|
end
|
||||||
|
|
||||||
# POST /api/v1/notifications/dismiss
|
# POST /api/v1/notifications/:id/dismiss
|
||||||
|
# POST /api/v1/notifications/dismiss (deprecated)
|
||||||
def dismiss(%{assigns: %{user: user}} = conn, %{"id" => id} = _params) do
|
def dismiss(%{assigns: %{user: user}} = conn, %{"id" => id} = _params) do
|
||||||
with {:ok, _notif} <- Notification.dismiss(user, id) do
|
with {:ok, _notif} <- Notification.dismiss(user, id) do
|
||||||
json(conn, %{})
|
json(conn, %{})
|
||||||
|
|
|
@ -352,9 +352,11 @@ defmodule Pleroma.Web.Router do
|
||||||
|
|
||||||
get("/notifications", NotificationController, :index)
|
get("/notifications", NotificationController, :index)
|
||||||
get("/notifications/:id", NotificationController, :show)
|
get("/notifications/:id", NotificationController, :show)
|
||||||
|
post("/notifications/:id/dismiss", NotificationController, :dismiss)
|
||||||
post("/notifications/clear", NotificationController, :clear)
|
post("/notifications/clear", NotificationController, :clear)
|
||||||
post("/notifications/dismiss", NotificationController, :dismiss)
|
|
||||||
delete("/notifications/destroy_multiple", NotificationController, :destroy_multiple)
|
delete("/notifications/destroy_multiple", NotificationController, :destroy_multiple)
|
||||||
|
# Deprecated: was removed in Mastodon v3, use `/notifications/:id/dismiss` instead
|
||||||
|
post("/notifications/dismiss", NotificationController, :dismiss)
|
||||||
|
|
||||||
get("/scheduled_statuses", ScheduledActivityController, :index)
|
get("/scheduled_statuses", ScheduledActivityController, :index)
|
||||||
get("/scheduled_statuses/:id", ScheduledActivityController, :show)
|
get("/scheduled_statuses/:id", ScheduledActivityController, :show)
|
||||||
|
|
|
@ -53,7 +53,7 @@ test "getting a single notification" do
|
||||||
assert response == expected_response
|
assert response == expected_response
|
||||||
end
|
end
|
||||||
|
|
||||||
test "dismissing a single notification" do
|
test "dismissing a single notification (deprecated endpoint)" do
|
||||||
%{user: user, conn: conn} = oauth_access(["write:notifications"])
|
%{user: user, conn: conn} = oauth_access(["write:notifications"])
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
@ -69,6 +69,22 @@ test "dismissing a single notification" do
|
||||||
assert %{} = json_response(conn, 200)
|
assert %{} = json_response(conn, 200)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "dismissing a single notification" do
|
||||||
|
%{user: user, conn: conn} = oauth_access(["write:notifications"])
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"})
|
||||||
|
|
||||||
|
{:ok, [notification]} = Notification.create_notifications(activity)
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> post("/api/v1/notifications/#{notification.id}/dismiss")
|
||||||
|
|
||||||
|
assert %{} = json_response(conn, 200)
|
||||||
|
end
|
||||||
|
|
||||||
test "clearing all notifications" do
|
test "clearing all notifications" do
|
||||||
%{user: user, conn: conn} = oauth_access(["write:notifications", "read:notifications"])
|
%{user: user, conn: conn} = oauth_access(["write:notifications", "read:notifications"])
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
Loading…
Reference in a new issue