API v1 500 error convert to 404, if just path is incorrect

pull/8187/head
Viktor Baranov 1 year ago
parent e3205029c0
commit 319f8c4c45
  1. 1
      CHANGELOG.md
  2. 12
      apps/block_scout_web/lib/block_scout_web/controllers/api/rpc/rpc_translator.ex

@ -57,6 +57,7 @@
### Fixes
- [#8187](https://github.com/blockscout/blockscout/pull/8187) - API v1 500 error convert to 404, if requested path is incorrect
- [#7852](https://github.com/blockscout/blockscout/pull/7852) - Token balances refactoring & fixes
- [#7872](https://github.com/blockscout/blockscout/pull/7872) - Fix pending gas price in pending tx
- [#7875](https://github.com/blockscout/blockscout/pull/7875) - Fix twin compiler version

@ -29,7 +29,7 @@ defmodule BlockScoutWeb.API.RPC.RPCTranslator do
end
def call(%Conn{params: %{"module" => module, "action" => action}} = conn, translations) do
with true <- valid_api_request_path(conn),
with {:valid_api_request, true} <- {:valid_api_request, valid_api_request_path(conn)},
{:ok, {controller, write_actions}} <- translate_module(translations, module),
{:ok, action} <- translate_action(action),
true <- action_accessed?(action, write_actions),
@ -58,6 +58,13 @@ defmodule BlockScoutWeb.API.RPC.RPCTranslator do
:rate_limit_reached ->
AccessHelper.handle_rate_limit_deny(conn)
{:valid_api_request, false} ->
conn
|> put_status(404)
|> put_view(RPCView)
|> Controller.render(:error, error: "Not found")
|> halt()
_ ->
conn
|> put_status(500)
@ -119,7 +126,8 @@ defmodule BlockScoutWeb.API.RPC.RPCTranslator do
end
defp valid_api_request_path(conn) do
if conn.request_path == "/api" || conn.request_path == "/api/v1" do
if conn.request_path == "/api" || conn.request_path == "/api/" || conn.request_path == "/api/v1" ||
conn.request_path == "/api/v1/" do
true
else
false

Loading…
Cancel
Save