summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormarcin mikołajczak <git@mkljczk.pl>2024-08-14 19:25:51 +0200
committermarcin mikołajczak <git@mkljczk.pl>2024-08-14 19:28:11 +0200
commit8cd8cea3fb5ce87e5f92dfb45a667c47f78b6b02 (patch)
tree34aa9a26ac35dfa7e546370715b71159cc50fa29 /lib
parent5174c29d4c8475d93f5635c56251064a415b1f57 (diff)
downloadpleroma-8cd8cea3fb5ce87e5f92dfb45a667c47f78b6b02.tar.gz
pleroma-8cd8cea3fb5ce87e5f92dfb45a667c47f78b6b02.zip
Fix 'Setting a marker should mark notifications as read'
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/marker_controller.ex10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex
index 4ad30f330..42b2a201d 100644
--- a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex
@@ -4,6 +4,7 @@
defmodule Pleroma.Web.MastodonAPI.MarkerController do
use Pleroma.Web, :controller
+
alias Pleroma.Web.Plugs.OAuthScopesPlug
plug(Pleroma.Web.ApiSpec.CastAndValidate)
@@ -30,9 +31,16 @@ defmodule Pleroma.Web.MastodonAPI.MarkerController do
def upsert(%{assigns: %{user: user}, body_params: params} = conn, _) do
params = Map.new(params, fn {key, value} -> {to_string(key), value} end)
- with {:ok, result} <- Pleroma.Marker.upsert(user, params),
+ with {:ok, _} <- mark_notifications_read(user, params),
+ {:ok, result} <- Pleroma.Marker.upsert(user, params),
markers <- Map.values(result) do
render(conn, "markers.json", %{markers: markers})
end
end
+
+ defp mark_notifications_read(user, %{"notifications" => %{last_read_id: last_read_id}}) do
+ Pleroma.Notification.set_read_up_to(user, last_read_id)
+ end
+
+ defp mark_notifications_read(_, _), do: {:ok, :noop}
end