forked from AkkomaGang/akkoma
Reroute /api/pleroma to /api/v1/pleroma
This commit is contained in:
parent
0edb5c805b
commit
c1d63bbd9a
3 changed files with 32 additions and 4 deletions
|
@ -37,6 +37,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- **Breaking:** AdminAPI `GET /api/pleroma/admin/instances/:instance/statuses` changed response format and added the number of total users posts.
|
- **Breaking:** AdminAPI `GET /api/pleroma/admin/instances/:instance/statuses` changed response format and added the number of total users posts.
|
||||||
- Admin API: Reports now ordered by newest
|
- Admin API: Reports now ordered by newest
|
||||||
- Pleroma API: `GET /api/v1/pleroma/chats` is deprecated in favor of `GET /api/v2/pleroma/chats`.
|
- Pleroma API: `GET /api/v1/pleroma/chats` is deprecated in favor of `GET /api/v2/pleroma/chats`.
|
||||||
|
- Pleroma API: Reroute `/api/pleroma/*` to `/api/v1/pleroma/*`
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
26
lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex
Normal file
26
lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Pleroma: A lightweight social networking server
|
||||||
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
defmodule Pleroma.Web.Fallback.LegacyPleromaApiRerouterPlug do
|
||||||
|
alias Pleroma.Web.Endpoint
|
||||||
|
alias Pleroma.Web.Fallback.RedirectController
|
||||||
|
|
||||||
|
def init(opts), do: opts
|
||||||
|
|
||||||
|
def call(%{path_info: ["api", "pleroma" | path_info_rest]} = conn, _opts) do
|
||||||
|
new_path_info = ["api", "v1", "pleroma" | path_info_rest]
|
||||||
|
new_request_path = Enum.join(new_path_info, "/")
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> Map.merge(%{
|
||||||
|
path_info: new_path_info,
|
||||||
|
request_path: new_request_path
|
||||||
|
})
|
||||||
|
|> Endpoint.call(conn.params)
|
||||||
|
end
|
||||||
|
|
||||||
|
def call(conn, _opts) do
|
||||||
|
RedirectController.api_not_implemented(conn, %{})
|
||||||
|
end
|
||||||
|
end
|
|
@ -140,7 +140,7 @@ defmodule Pleroma.Web.Router do
|
||||||
plug(Pleroma.Web.Plugs.MappedSignatureToIdentityPlug)
|
plug(Pleroma.Web.Plugs.MappedSignatureToIdentityPlug)
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api/pleroma", Pleroma.Web.TwitterAPI do
|
scope "/api/v1/pleroma", Pleroma.Web.TwitterAPI do
|
||||||
pipe_through(:pleroma_api)
|
pipe_through(:pleroma_api)
|
||||||
|
|
||||||
get("/password_reset/:token", PasswordController, :reset, as: :reset_password)
|
get("/password_reset/:token", PasswordController, :reset, as: :reset_password)
|
||||||
|
@ -150,12 +150,12 @@ defmodule Pleroma.Web.Router do
|
||||||
get("/healthcheck", UtilController, :healthcheck)
|
get("/healthcheck", UtilController, :healthcheck)
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api/pleroma", Pleroma.Web do
|
scope "/api/v1/pleroma", Pleroma.Web do
|
||||||
pipe_through(:pleroma_api)
|
pipe_through(:pleroma_api)
|
||||||
post("/uploader_callback/:upload_path", UploaderController, :callback)
|
post("/uploader_callback/:upload_path", UploaderController, :callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api/pleroma/admin", Pleroma.Web.AdminAPI do
|
scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do
|
||||||
pipe_through(:admin_api)
|
pipe_through(:admin_api)
|
||||||
|
|
||||||
put("/users/disable_mfa", AdminAPIController, :disable_mfa)
|
put("/users/disable_mfa", AdminAPIController, :disable_mfa)
|
||||||
|
@ -259,7 +259,7 @@ defmodule Pleroma.Web.Router do
|
||||||
post("/backups", AdminAPIController, :create_backup)
|
post("/backups", AdminAPIController, :create_backup)
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api/pleroma/emoji", Pleroma.Web.PleromaAPI do
|
scope "/api/v1/pleroma/emoji", Pleroma.Web.PleromaAPI do
|
||||||
scope "/pack" do
|
scope "/pack" do
|
||||||
pipe_through(:admin_api)
|
pipe_through(:admin_api)
|
||||||
|
|
||||||
|
@ -809,6 +809,7 @@ defmodule Pleroma.Web.Router do
|
||||||
scope "/", Pleroma.Web.Fallback do
|
scope "/", Pleroma.Web.Fallback do
|
||||||
get("/registration/:token", RedirectController, :registration_page)
|
get("/registration/:token", RedirectController, :registration_page)
|
||||||
get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta)
|
get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta)
|
||||||
|
match(:*, "/api/pleroma*path", LegacyPleromaApiRerouterPlug, [])
|
||||||
get("/api*path", RedirectController, :api_not_implemented)
|
get("/api*path", RedirectController, :api_not_implemented)
|
||||||
get("/*path", RedirectController, :redirector_with_preload)
|
get("/*path", RedirectController, :redirector_with_preload)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue