diff options
author | kPherox <admin@mail.kr-kp.com> | 2019-10-01 01:39:22 +0900 |
---|---|---|
committer | kPherox <admin@mail.kr-kp.com> | 2019-10-01 01:40:33 +0900 |
commit | a0f101ee806af06bcd4271cd8d57d11ff85ea11a (patch) | |
tree | 2cd3c5d1a645be1395c57ec5616f31afb4b68da7 /lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex | |
parent | 8ca4f145a51e92c9f3a6c374ceddfac22ea300d9 (diff) | |
parent | 7c9b023a918c84b60ae6547289a083c671a3659b (diff) | |
download | pleroma-a0f101ee806af06bcd4271cd8d57d11ff85ea11a.tar.gz |
Merge remote-tracking branch 'upstream/develop' into fix-prameter-name-of-accounts-update-credentials
Diffstat (limited to 'lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex')
-rw-r--r-- | lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex new file mode 100644 index 000000000..41243d5e7 --- /dev/null +++ b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex @@ -0,0 +1,34 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.FallbackController do + use Pleroma.Web, :controller + + def call(conn, {:error, %Ecto.Changeset{} = changeset}) do + error_message = + changeset + |> Ecto.Changeset.traverse_errors(fn {message, _opt} -> message end) + |> Enum.map_join(", ", fn {_k, v} -> v end) + + conn + |> put_status(:unprocessable_entity) + |> json(%{error: error_message}) + end + + def call(conn, {:error, :not_found}) do + render_error(conn, :not_found, "Record not found") + end + + def call(conn, {:error, error_message}) do + conn + |> put_status(:bad_request) + |> json(%{error: error_message}) + end + + def call(conn, _) do + conn + |> put_status(:internal_server_error) + |> json(dgettext("errors", "Something went wrong")) + end +end |