aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-08-31 11:40:04 +0300
committerrinpatch <rinpatch@sdf.org>2019-08-31 11:43:06 +0300
commitbd3ed3a62299bad5d717aaff0a0bd088ff1c1ef7 (patch)
tree724950415beba4ef87c0aa6ce7dcb9c487c3b59f /lib
parent9cabc02864ff33b76f424a342732ef8039dfd73d (diff)
downloadpleroma-bd3ed3a62299bad5d717aaff0a0bd088ff1c1ef7.tar.gz
Add back /api/qvitter/statuses/notifications/read.json
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/router.ex6
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex25
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 53728e298..eb7cbbc96 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -495,6 +495,12 @@ defmodule Pleroma.Web.Router do
get("/oauth_tokens", TwitterAPI.Controller, :oauth_tokens)
delete("/oauth_tokens/:id", TwitterAPI.Controller, :revoke_token)
+
+ scope [] do
+ pipe_through(:oauth_read)
+
+ post("/qvitter/statuses/notifications/read", TwitterAPI.Controller, :notifications_read)
+ end
end
pipeline :ap_service_actor do
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
index 1c3b11a57..8ca754b51 100644
--- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
@@ -7,6 +7,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
alias Ecto.Changeset
alias Pleroma.User
+ alias Pleroma.Notification
alias Pleroma.Web.OAuth.Token
alias Pleroma.Web.TwitterAPI.TokenView
@@ -58,4 +59,28 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
|> put_resp_content_type("application/json")
|> send_resp(status, json)
end
+
+ def notifications_read(%{assigns: %{user: user}} = conn, %{"latest_id" => latest_id} = params) do
+ Notification.set_read_up_to(user, latest_id)
+
+ notifications = Notification.for_user(user, params)
+
+ conn
+ # XXX: This is a hack because pleroma-fe still uses that API.
+ |> put_view(Pleroma.Web.MastodonAPI.NotificationView)
+ |> render("index.json", %{notifications: notifications, for: user})
+ end
+
+ def notifications_read(%{assigns: %{user: _user}} = conn, _) do
+ bad_request_reply(conn, "You need to specify latest_id")
+ end
+
+ defp bad_request_reply(conn, error_message) do
+ json = error_json(conn, error_message)
+ json_reply(conn, 400, json)
+ end
+
+ defp error_json(conn, error_message) do
+ %{"error" => error_message, "request" => conn.request_path} |> Jason.encode!()
+ end
end