Allow to mark a single notification as read
[akkoma] / lib / pleroma / web / twitter_api / controllers / util_controller.ex
index 8ed02a93fe6e55c1db5ee4d52b7e9c6325b273c4..320ec778c28526b88ba27dad9f9bf3b205724c03 100644 (file)
@@ -9,6 +9,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
 
   alias Comeonin.Pbkdf2
   alias Pleroma.Emoji
+  alias Pleroma.Notification
   alias Pleroma.PasswordResetToken
   alias Pleroma.Repo
   alias Pleroma.User
@@ -142,6 +143,17 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
     end
   end
 
+  def notifications_read(%{assigns: %{user: user}} = conn, %{"id" => notification_id}) do
+    with {:ok, _} <- Notification.read_one(user, notification_id) do
+      json(conn, %{status: "success"})
+    else
+      {:error, message} ->
+        conn
+        |> put_resp_content_type("application/json")
+        |> send_resp(403, Jason.encode!(%{"error" => message}))
+    end
+  end
+
   def config(conn, _params) do
     instance = Pleroma.Config.get(:instance)
     instance_fe = Pleroma.Config.get(:fe)