First
[anni] / lib / pleroma / web / admin_api / controllers / fallback_controller.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.AdminAPI.FallbackController do
6   use Pleroma.Web, :controller
7
8   def call(conn, {:error, :not_found}) do
9     conn
10     |> put_status(:not_found)
11     |> json(%{error: dgettext("errors", "Not found")})
12   end
13
14   def call(conn, {:error, reason}) do
15     conn
16     |> put_status(:bad_request)
17     |> json(%{error: reason})
18   end
19
20   def call(conn, {:errors, errors}) do
21     conn
22     |> put_status(:bad_request)
23     |> json(%{errors: errors})
24   end
25
26   def call(conn, {:param_cast, _}) do
27     conn
28     |> put_status(:bad_request)
29     |> json(dgettext("errors", "Invalid parameters"))
30   end
31
32   def call(conn, _) do
33     conn
34     |> put_status(:internal_server_error)
35     |> json(%{error: dgettext("errors", "Something went wrong")})
36   end
37 end