forked from AkkomaGang/akkoma
Remove deprecated /api/qvitter/statuses/notifications/read
This commit is contained in:
parent
e4743847a1
commit
a22c53810b
4 changed files with 3 additions and 88 deletions
|
@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
- The `application` metadata returned with statuses is no longer hardcoded. Apps that want to display these details will now have valid data for new posts after this change.
|
- The `application` metadata returned with statuses is no longer hardcoded. Apps that want to display these details will now have valid data for new posts after this change.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- **Breaking**: Remove deprecated `/api/qvitter/statuses/notifications/read` (replaced by `/api/v1/pleroma/notifications/read`)
|
||||||
|
|
||||||
## Unreleased (Patch)
|
## Unreleased (Patch)
|
||||||
|
|
||||||
## [2.3.0] - 2020-03-01
|
## [2.3.0] - 2020-03-01
|
||||||
|
|
|
@ -620,12 +620,6 @@ defmodule Pleroma.Web.Router do
|
||||||
|
|
||||||
get("/oauth_tokens", TwitterAPI.Controller, :oauth_tokens)
|
get("/oauth_tokens", TwitterAPI.Controller, :oauth_tokens)
|
||||||
delete("/oauth_tokens/:id", TwitterAPI.Controller, :revoke_token)
|
delete("/oauth_tokens/:id", TwitterAPI.Controller, :revoke_token)
|
||||||
|
|
||||||
post(
|
|
||||||
"/qvitter/statuses/notifications/read",
|
|
||||||
TwitterAPI.Controller,
|
|
||||||
:mark_notifications_as_read
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/", Pleroma.Web do
|
scope "/", Pleroma.Web do
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
defmodule Pleroma.Web.TwitterAPI.Controller do
|
defmodule Pleroma.Web.TwitterAPI.Controller do
|
||||||
use Pleroma.Web, :controller
|
use Pleroma.Web, :controller
|
||||||
|
|
||||||
alias Pleroma.Notification
|
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
alias Pleroma.Web.OAuth.Token
|
alias Pleroma.Web.OAuth.Token
|
||||||
alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
|
alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
|
||||||
|
@ -14,11 +13,6 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
|
||||||
|
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
plug(
|
|
||||||
OAuthScopesPlug,
|
|
||||||
%{scopes: ["write:notifications"]} when action == :mark_notifications_as_read
|
|
||||||
)
|
|
||||||
|
|
||||||
plug(
|
plug(
|
||||||
:skip_plug,
|
:skip_plug,
|
||||||
[OAuthScopesPlug, EnsurePublicOrAuthenticatedPlug] when action == :confirm_email
|
[OAuthScopesPlug, EnsurePublicOrAuthenticatedPlug] when action == :confirm_email
|
||||||
|
@ -67,31 +61,4 @@ defp json_reply(conn, status, json) do
|
||||||
|> put_resp_content_type("application/json")
|
|> put_resp_content_type("application/json")
|
||||||
|> send_resp(status, json)
|
|> send_resp(status, json)
|
||||||
end
|
end
|
||||||
|
|
||||||
def mark_notifications_as_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 mark_notifications_as_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
|
end
|
||||||
|
|
|
@ -7,59 +7,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||||
|
|
||||||
alias Pleroma.Repo
|
alias Pleroma.Repo
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
alias Pleroma.Web.CommonAPI
|
|
||||||
alias Pleroma.Web.OAuth.Token
|
alias Pleroma.Web.OAuth.Token
|
||||||
|
|
||||||
import Pleroma.Factory
|
import Pleroma.Factory
|
||||||
|
|
||||||
describe "POST /api/qvitter/statuses/notifications/read" do
|
|
||||||
test "without valid credentials", %{conn: conn} do
|
|
||||||
conn = post(conn, "/api/qvitter/statuses/notifications/read", %{"latest_id" => 1_234_567})
|
|
||||||
assert json_response(conn, 403) == %{"error" => "Invalid credentials."}
|
|
||||||
end
|
|
||||||
|
|
||||||
test "with credentials, without any params" do
|
|
||||||
%{conn: conn} = oauth_access(["write:notifications"])
|
|
||||||
|
|
||||||
conn = post(conn, "/api/qvitter/statuses/notifications/read")
|
|
||||||
|
|
||||||
assert json_response(conn, 400) == %{
|
|
||||||
"error" => "You need to specify latest_id",
|
|
||||||
"request" => "/api/qvitter/statuses/notifications/read"
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
test "with credentials, with params" do
|
|
||||||
%{user: current_user, conn: conn} =
|
|
||||||
oauth_access(["read:notifications", "write:notifications"])
|
|
||||||
|
|
||||||
other_user = insert(:user)
|
|
||||||
|
|
||||||
{:ok, _activity} =
|
|
||||||
CommonAPI.post(other_user, %{
|
|
||||||
status: "Hey @#{current_user.nickname}"
|
|
||||||
})
|
|
||||||
|
|
||||||
response_conn =
|
|
||||||
conn
|
|
||||||
|> get("/api/v1/notifications")
|
|
||||||
|
|
||||||
[notification] = json_response(response_conn, 200)
|
|
||||||
|
|
||||||
assert notification["pleroma"]["is_seen"] == false
|
|
||||||
|
|
||||||
response_conn =
|
|
||||||
conn
|
|
||||||
|> post("/api/qvitter/statuses/notifications/read", %{"latest_id" => notification["id"]})
|
|
||||||
|
|
||||||
[notification] = response = json_response(response_conn, 200)
|
|
||||||
|
|
||||||
assert length(response) == 1
|
|
||||||
|
|
||||||
assert notification["pleroma"]["is_seen"] == true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "GET /api/account/confirm_email/:id/:token" do
|
describe "GET /api/account/confirm_email/:id/:token" do
|
||||||
setup do
|
setup do
|
||||||
{:ok, user} =
|
{:ok, user} =
|
||||||
|
|
Loading…
Reference in a new issue