Browse Source

Respond with a 404 Not implemented JSON error message

when requested API is not implemented
tags/v1.1.4
Aaron Tinio 5 years ago
parent
commit
3ab9255eda
3 changed files with 14 additions and 0 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +7
    -0
      lib/pleroma/web/router.ex
  3. +6
    -0
      test/web/fallback_test.exs

+ 1
- 0
CHANGELOG.md View File

@@ -74,6 +74,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Hide deactivated users and their statuses
- Posts which are marked sensitive or tagged nsfw no longer have link previews.
- HTTP connection timeout is now set to 10 seconds.
- Respond with a 404 Not implemented JSON error message when requested API is not implemented

### Fixed
- Added an FTS index on objects. Running `vacuum analyze` and setting a larger `work_mem` is recommended.


+ 7
- 0
lib/pleroma/web/router.ex View File

@@ -710,6 +710,7 @@ defmodule Pleroma.Web.Router do
scope "/", Fallback do
get("/registration/:token", RedirectController, :registration_page)
get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta)
get("/api*path", RedirectController, :api_not_implemented)
get("/*path", RedirectController, :redirector)

options("/*path", RedirectController, :empty)
@@ -721,6 +722,12 @@ defmodule Fallback.RedirectController do
alias Pleroma.User
alias Pleroma.Web.Metadata

def api_not_implemented(conn, _params) do
conn
|> put_status(404)
|> json(%{error: "Not implemented"})
end

def redirector(conn, _params, code \\ 200) do
conn
|> put_resp_content_type("text/html")


+ 6
- 0
test/web/fallback_test.exs View File

@@ -24,6 +24,12 @@ defmodule Pleroma.Web.FallbackTest do
|> html_response(200) =~ "<!--server-generated-meta-->"
end

test "GET /api*path", %{conn: conn} do
assert conn
|> get("/api/foo")
|> json_response(404) == %{"error" => "Not implemented"}
end

test "GET /*path", %{conn: conn} do
assert conn
|> get("/foo")


Loading…
Cancel
Save